Hexdump(16進数ダンプ)の読み方

Hexdump 出力の読み方と解釈を学習。オフセット、16進数データ、ASCII 列の意味を理解。デバッグ、フォレンジック、リバースエンジニアリングに必須のスキルです。

Raw Binary DataHexadecimal + ASCIIEncoding

詳細な説明

Hexdump はバイナリファイルの内容を16進数の値とそれに対応する ASCII 文字と並べて表示します。ファイル、ネットワークパケット、メモリのバイナリデータを検査するための主要なツールです。

Hexdump の1行の構造:

00000010  48 65 6C 6C 6F 20 57 6F  72 6C 64 21 0A 00 FF FE  |Hello World!....|
  • オフセット (00000010): ファイル内のバイト位置(16進数)。この行はバイト 16 から始まります。
  • 16進数データ (48 65 6C...): 2桁の16進数値として表示された16バイトで、読みやすさのために8バイトずつ2つのグループに分かれています。
  • ASCII 列 (|Hello World!....|): 印刷可能な ASCII 表現。印刷不可のバイトはドットで表示されます。

すぐに認識すべき主な16進数の値:

  • 00 = null バイト(C での文字列終端)
  • 0A = 改行(\n、Unix の行末)
  • 0D 0A = キャリッジリターン + 改行(\r\n、Windows の行末)
  • 20 = スペース文字
  • FF = 255、マーカーや最大値としてよく使われる
  • 7F = DEL 文字(127)

ファイルシグネチャ(マジックバイト)の読み取り:

ファイルは先頭に識別バイトシーケンスを持っています:

  • 89 50 4E 47 = PNG 画像(ASCII で .PNG
  • 50 4B 03 04 = ZIP アーカイブ(DOCX、XLSX、JAR も同様)
  • 25 50 44 46 = PDF ファイル(%PDF
  • FF D8 FF = JPEG 画像
  • 7F 45 4C 46 = ELF 実行ファイル(.ELF

Hexdump を作成するツール:

  • xxd file.bin --- Linux/macOS で標準的
  • hexdump -C file.bin --- 正規形式
  • od -A x -t x1z file.bin --- 16進数出力のオクタルダンプ

Hexdump を流暢に読めることは、ファイル形式の問題のデバッグ、ネットワークプロトコルの分析、デジタルフォレンジック、ソフトウェアのリバースエンジニアリングに不可欠なスキルです。

ユースケース

デジタルフォレンジック調査官は、ディスクイメージの Hexdump を読み取り、ファイルシグネチャの特定、削除ファイルの復元、他のファイル形式に埋め込まれた隠しデータの発見を行います。

Try It — Number Base Converter

フルツールを開く