Linux で バイナリ

バイナリファイルを扱う。

ダンプする

表示するには、いくつかの選択肢がある。
対象のファイルを「data.bin」とすると

$ od data.bin

とか

$ hexdump -C data.bin

とか

$ xxd data.bin

とか。


個人的には、編集でも使うので、xxdをメインに。
shortじゃなくて、byteで表示したいなら、

$ xxd -g 1 data.bin
0000000: 00 01 02 03 04 05 06 07 08 09                    ..........
$

編集する

vim で、バイナリ編集可能です。

$ vi -b data.bin
^@^A^B^C^D^E^F^G^H
~
~
"data.bin" [Incomplete last line] 1 line, 10 characters

xxdに渡すために、「:%! xxd」と入力。
(バイト単位でやりたいなら、「:%! xxd -g 1」)

0000000: 00 01 02 03 04 05 06 07 08 09                    ..........
~
~
:%! xxd -g 1

編集する。
後ろのASCII表示は無視しても良いらしい。
1行16Byteで入力することらしい。

0000000: 00 01 02 03 04 05 06 07 08 08 07 06 05 04 03 02                    ..........
0000010: 01 00
~
:%! xxd -g 1

結果を反映するために、「:%! xxd -r」と入力。

^@^A^B^C^D^E^F^G^H^H^G^F^E^D^C^B^A^@
~
~
:%! xxd -r

で、保存終了「:wq」なり、なんなりどうぞ。