揮発性のメモ2

知識をメモ書きしておく

hexdumpの代わり2

Linuxでバイナリファイルをダンプするツール

od

パッケージ coreutils に入ってるツール
man od (1): ファイルを 8 進数やその他の形式でダンプする

オプション 意味 備考
-Ax -A でオフセット(左端のやつ)の表示を指定
x ←16進表記
未指定時は8進表記
-tx1z -t でフォーマットを指定
x1 ←16進で1バイトずつ
x4 ←16進で4バイトずつ
z ←テキスト表示
トルエンディアン
-v 重複行を省略しない デフォルトは省略する

od 1バイトごとに表示、省略なし

$ od -Ax -tx1z -v /tmp/test.bin
000000 78 56 34 12 01 02 03 04 30 31 32 33 34 35 36 37  >xV4.....01234567<
000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000040 e3 81 82 00 82 a0 82 a2                          >........<
000048

od 4バイトごとに表示、省略あり

$ od -Ax -tx4z /tmp/test.bin
000000 12345678 04030201 33323130 37363534  >xV4.....01234567<
000010 00000000 00000000 00000000 00000000  >................<
*
000040 008281e3 a282a082                    >........<
000048

xxd

パッケージ xxd に入ってるツール
man xxd (1): 16 進ダンプを作成したり、元に戻したり。

オプション 意味 備考
-g1 -g 16進で表示するバイト数を指定
1 ←1バイトずつ
4 ←4バイトずつ
-e トルエンディアンで表示 デフォルトはビッグエンディアン
-a 重複行を省略する デフォルトは省略しない

xxd 1バイトごとに表示、省略なし

$ xxd -g1 /tmp/test.bin
00000000: 78 56 34 12 01 02 03 04 30 31 32 33 34 35 36 37  xV4.....01234567
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000040: e3 81 82 00 82 a0 82 a2                          ........

xxd 4バイトごとに表示、省略あり

$ xxd -eg4 -a /tmp/test.bin
00000000: 12345678 04030201 33323130 37363534  xV4.....01234567
00000010: 00000000 00000000 00000000 00000000  ................
*
00000040: 008281e3 a282a082                    ........

hexdump

パッケージ bsdextrautils に入っているツール
man hexdump (1): ASCII, 10 進, 16 進, 8 進でダンプする

オプション 意味 備考
-C 1バイトずつ表示するよう指定
-v 重複行を省略しない デフォルトは省略する

hexdump 1バイトごとに表示、省略なし

$ hexdump -Cv /tmp/test.bin
00000000  78 56 34 12 01 02 03 04  30 31 32 33 34 35 36 37  |xV4.....01234567|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000040  e3 81 82 00 82 a0 82 a2                           |........|
00000048

hexdump 4バイトごとに表示、省略あり

出力フォーマットを自分で作ればできるけど、すっげー大変なので省略