技巧: linux下查看二进制文件

怎么查看二进制文件,以十六进制的方式。(除了 emacs 的十六进制模式)

主要说两个非常好用的工具: od 和 hexdump

od

od - dump files in octal and other formats
顾名思义是查看八进制,可以通过指定参数为查看十六进制
-A 指定左边侧栏显示的地址基数,默认为八进制
-t 指定输出单元的进制格式和字节数
-x = -t x2 输出单元为双字节(注意:每单元内排列顺序从左到右为 [高字节|低字节])

例:

1
2
3
4
5
6
7
8
9
10
11
12
$ od -t x1 asm | more
0000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
0000020 02 00 03 00 01 00 00 00 54 80 04 08 34 00 00 00

$ od -A x -t x1 asm | more
000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
000010 02 00 03 00 01 00 00 00 54 80 04 08 34 00 00 00


$ od -A x -x asm | more
000000 457f 464c 0101 0001 0000 0000 0000 0000
000010 0002 0003 0001 0000 8054 0804 0034 0000

hexdump

hexdump - ascii, decimal, hexadecimal, octal dump
查看十六机制的首选工具。
-c 每单元以字节为单位,显示出对应的ASCII码
-C 每单元以字节为单位,同时显示十六机制和ASCII码

例:

1
2
3
4
5
6
7
$ hexdump -c asm | more
0000000 177 E L F 001 001 001 /0 /0 /0 /0 /0 /0 /0 /0 /0
0000010 002 /0 003 /0 001 /0 /0 /0 T 200 004 /b 4 /0 /0 /0

$ hexdump -C asm | more
00000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 |.ELF............|
00000010 02 00 03 00 01 00 00 00 54 80 04 08 34 00 00 00 |........T...4...|

上面都是非常实用的方法,我个人一般使用 hexdump -C

文章目录
  1. 1. od
  2. 2. hexdump
|