Ubuntuでバイナリファイルの内容を確認する方法
Ubuntuのコマンドラインから、ファイルの内容を16進数で表示するコマンドです。
コマンドはバイナリファイル、テキストファイル問わずに利用できます。
hexdump
hexdumpは16進数の値と対応する文字をテキストで表示します。
hexdump -C <FILENAME>
表示例
00000000 73 61 6d 70 6c 65 0a |sample.|
00000007
xxd
xxdも同じような出力を行います。
xxd <FILENAME>
表示例
00000000: 7361 6d70 6c65 0a sample.
-sで開始インデックス(指定なしは0)、-lで読み取るバイト数(指定なしは最後まで)を指定できます。
xxd -s 2 -l 2 <FILENAME>
表示例
00000002: 6d70 mp
-pを指定すると16進数の値をテキストで表示します。
xxd -p test.txt
表示例
73616d706c650a
次のコマンドで、上記のような16進数の文字列をバイナリデータとして保存できます。
xxd -r -p <INPUT_FILENAME> > <OUTPUT_FILENAME>
例として、次のようにコマンドを実行した場合、test.txtとtest-revert.txtは同一となります。
xxd -p test.txt > test16.txt
xxd -r -p test16.txt > test-revert.txt 