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

目次
hexdumpコマンドの概要と基本的な使い方
Linux環境でファイルの中身を詳しく確認したい場合、 通常は cat や less を使用します。
しかし、バイナリファイルや制御文字を含むデータの場合、 通常の表示では内容を正しく確認できません。
そこで利用されるのが 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とあわせて理解しておくと、 データ構造や文字コードの理解が深まります。





