1. hexdumpコマンド

画像ファイルの先頭情報を確認したり、フォーマットが不明なファイルを調べる場合など、バイナリファイルの中身を確認する方法。 テキストファイルの改行コード確認にも使用できます。

hexdumpコマンド

hexdumpコマンドは、バイナリファイルの中身を16進数やASCIIで表示するコマンドで、以下のようになります。

hexdump [オプション] [ファイルパス]

  • 表示するオフセット、サイズの指定

  • hexdumpコマンドでは、表示するオフセット(開始位置)やサイズを指定しないと、ファイルの全データが表示されまいます。 一部だけ表示したい場合は、"-s"オプションでオフセット、"-n"オプションでサイズを指定します。

    例 先頭から16バイトだけ表示する場合

    $ hexdump -n 16 sakura01.jpg
    0000000 d8ff e0ff 1000 464a 4649 0100 0101 4800
    0000010

    例 先頭8バイトから16バイトだけ表示する場合

    $ hexdump -s 8 -n 16 sakura01.jpg
    0000008 4649 0100 0101 4800 4800 0000 e1ff 4643
    0000018

  • 16進数 + ASCII表示

  • バイナリファイルの表示で最も一般的な 16進数 + ASCII 表示は、オプション"-C"を指定します。

    hexdump -C [ファイルパス]
    ただし、"-C"だけだと全ての中身を表示するので、表示したい範囲を指定する場合は、表示オフセットを指定する"-n"オプションや、 表示サイズを指定する"-s"オプションと組み合わせて使用します。

    例 画像ファイル(jpeg)の先頭100バイトを表示

    $ hexdump -C sakura01.jpg -n 100
    00000000  ff d8 ff e0 00 10 4a 46  49 46 00 01 01 01 00 48  |......JFIF.....H|
    00000010  00 48 00 00 ff e1 43 46  45 78 69 66 00 00 49 49  |.H....CFExif..II|
    00000020  2a 00 08 00 00 00 0a 00  0f 01 02 00 0a 00 00 00  |*...............|
    00000030  86 00 00 00 10 01 02 00  08 00 00 00 90 00 00 00  |................|
    00000040  12 01 03 00 01 00 00 00  01 00 00 00 1a 01 05 00  |................|
    00000050  01 00 00 00 98 00 00 00  1b 01 05 00 01 00 00 00  |................|
    00000060  a0 00 00 00                                       |....|
    00000064

    参考 hexdumpは、テキストファイルの改行コード確認にも使用できます。