16進数の代わりにバイナリを見る

16進数の代わりにバイナリを見る

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

関連情報