hexdump:バイナリ解析の基本ツール

hexdump

hexdumpコマンドの概要と基本的な使い方

Linux環境でファイルの中身を詳しく確認したい場合、 通常は catless を使用します。

しかし、バイナリファイルや制御文字を含むデータの場合、 通常の表示では内容を正しく確認できません。

そこで利用されるのが hexdump コマンドです。

hexdumpは、ファイルの内容を 16進数(hex)形式で表示するためのツールです。

プログラム解析、文字コード確認、ネットワークデータ調査など、 トラブルシューティングや学習用途で非常に役立ちます。

hexdumpとは何か

hexdumpは、ファイルや標準入力のデータを 16進数・ASCII形式などで整形表示するコマンドです。

Linuxのほぼすべてのディストリビューションに標準搭載されています。

バイナリファイルの中身を「人間が読める形式」で確認するための 基本ツールの一つです。

基本構文

$ hexdump ファイル名

特にオプションを指定しない場合、 16進数形式で表示されます。

よく使うオプション

1. 標準的な16進+ASCII表示(最もよく使う)

$ hexdump -C sample.txt

-C オプションは、

  • 左側に16進アドレス
  • 中央に16進バイト列
  • 右側にASCII表示

という見やすい形式で出力します。 実務ではこの形式が最も利用されます。

2. 1バイト単位の16進表示

$ hexdump -v -e '1/1 "%02x "' sample.txt

-v は省略せずすべて表示、 -e は出力フォーマット指定です。

3. 10進数表示

$ hexdump -d sample.txt

-d は10進数表示です。

4. 文字表示

$ hexdump -c sample.txt

-c は文字として表示します。 制御文字も可視化できます。

具体例

テキストファイルを作成:

$ echo "ABC" > test.txt

表示:

$ hexdump -C test.txt

出力例:

00000000  41 42 43 0a                                       |ABC.|
00000004

0x41 = A 0x42 = B 0x43 = C 0x0a = 改行(LF)

バイナリファイルの確認

実行ファイルの先頭確認:

$ hexdump -C /bin/ls | head

ELFヘッダーなどが確認できます。

パイプで利用する例

標準入力にも対応しています。

$ echo "Hello" | hexdump -C

通信データやAPIレスポンスの解析にも利用できます。

表示バイト数を制限する

$ hexdump -C -n 64 sample.txt

-n は表示バイト数指定です。

hexdumpの活用例

  • 文字コード確認
  • 改行コード確認
  • バイナリファイル解析
  • ネットワークデータ確認
  • ファイル破損調査

odやxxdとの違い

  • od: 出力形式が柔軟
  • hexdump: 標準的で見やすい16進表示
  • xxd: Vim系環境で人気、逆変換も可能

一般的な解析では、 hexdump -C が最も使いやすい形式です。

まとめ

hexdumpコマンドは、 Linuxにおけるバイナリ解析の基本ツールです。

普段の業務では出番が少ないかもしれませんが、 トラブル調査や学習時には非常に重要な存在です。

odやxxdとあわせて理解しておくと、 データ構造や文字コードの理解が深まります。