怎么查看二进制文件,以十六进制的方式。(除了 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
。