時々使うのでメモ。
PNGファイルの場合、先頭から8byteに以下のようにヘッダーが入っている。これを使って、検証しておく。
#16進数
89 50 4E 47 0D 0A 1A 0A
#10進数
137 80 78 71 13 10 26 10
odコマンドを使ってファイルをダンプする
今回は、odコマンドを使ってダンプする。
デフォルトでダンプした場合
- 8進数で表示される。
0000000
のファイルオフセットも8進数で表示される。
# -N 9: 先頭の9byteを表示
$ od -N 9 sample.png
0000000 050211 043516 005015 005032 000000
0000011
16進数でダンプする場合
- デフォルトはリトルエンディアンで表示される。
- エンディアンを切り替える場合は、オプションを指定する。
# -t x: 16進数で表示
$ od -N 9 -t x sample.png
0000000 474e5089 0a1a0a0d 00000000
0000011
# --endian=big: ビッグエンディアンで表示
$ od -N 9 -t x --endian=big sample.png
0000000 89504e47 0d0a1a0a 00000000
0000011
byteを変えてダンプする場合
# 1byte
$ od -N 9 -t x1 sample.png
0000000 89 50 4e 47 0d 0a 1a 0a 00
0000011
# 1byte(10進数)
# d1だとINT8が使われる。
$ od -N 9 -t d1 sample.png
0000000 -119 80 78 71 13 10 26 10 0
0000011
# 1byte(10進数)
# d1だとUnsigned INT8が使われる。
$ od -N 9 -t u1 sample.png
0000000 137 80 78 71 13 10 26 10 0
0000011
# 4byte
$ od -N 9 -t x4 sample.png
0000000 474e5089 0a1a0a0d 00000000
0000011
# 8byte
$ od -N 9 -t x8 sample.png
0000000 0a1a0a0d474e5089 0000000000000000
0000011
終わりに
似たようなコマンドで、hexdumpやxxdのコマンドもある。
本当に時々使う。。