Debian jess 64
ファイルのバイナリを00101000として見て編集できるかどうか疑問に思います。見ることはできますが、ヘクスの形で8桁で見て編集したいのですが、ちゃんと見られるようになりました。編集せずにフォームでしか使えないのでこれが可能だと思います。
したがって、ストーリーのレッスンは、16進数ではなく8桁形式でバイナリファイルを見て編集してみることです。
答え1
を使用するとフラグxxd
を使用できます-b
echo 'hello world' | xxd -b
これは出力されます
0000000: 01101000 01100101 01101100 01101100 01101111 00100000 hello
0000006: 01110111 01101111 01110010 01101100 01100100 00001010 world.
編集可能なファイルにリダイレクトできます。
echo 'hello world' | xxd -b > dumped_bits.txt
その後、列を元の位置に残します。この(ハッキーですが)スクリプトを使用して再変換できます。
#!/bin/bash
# name this file something like `bits_to_binary.sh`
# strip anything that's not a bit string like `0000000:` or `world`
bits=`sed -ze 's/\w*[^ 01]\w*//g' -e 's/ //g' -e 's/\n//' $1`
# and convert the bit representation to binary
printf "obase=16;ibase=2;${bits}\n" | bc | xxd -r -p
これらの手順を組み合わせると、次のことができます。
echo 'hello world' | xxd -b > dumped_bits.txt # edit dumped_bits.txt ./bits_to_binary.sh dumped_bits.txt # hooray! the binary output from the edited bits!
答え2
バイナリモードでvimを使用してください。
vim -b filetohack.bin