Linux 下查看机器代码

查看文本文件使用vim/less就足够了,但如果想要查看一些其他二进制文件(例如DB的数据文件、程序的二进制代码)则借助于od/hexdump这些工具会很方便,这里会通过一些实例来详细介绍od命令的相关参数。
1. od参数详解
$od -j 49152 -N 38 -w4 -A d -t x1 -v tmp_test.ibd
0049152 fd 6f fb 70
0049156 00 00 00 03
0049160 ff ff ff ff
0049164 ff ff ff ff
0049168 00 00 00 03
0049172 ba 92 ac 0c
0049176 45 bf 00 00
0049180 00 00 00 00
0049184 00 00 00 00
-j 49152 跳过前49152个字节(bytes)
-N 38 仅显示38个字节
-w4 每一行显示4个字节
-A d 表示最左侧的偏移量按十进制显示;-A还可以接[doxn],其中d表示十进制,o表示8进制,x表示16进制,n表示不显示该偏移量,如:
od -j 49152 -N 8 -w4 -A n -t x1 -v ibdata1
b4 0b c7 31
00 00 00 03
-t x1表示如何显示文件内容。这里,x表示按照16进制输出文件内容,x后面跟的“1”表示一次显示一个字节。下面是一个-t x2的输出:
od -j 49152 -N 8 -w4 -A n -t x2 -v ibdata1
0bb4 31c7 # 0bb4是十进制表示的两个字节
0000 0300 #
另外,注意到这里是0bb4和前面的b40b略有不同,这是因为我这里的测试平台是little-endian的(x86_64 Linux)。
最后,参数-v表示,即使连续多行都是完全相同的字符0,仍然原样输出;不加该参数,则会使用星号(*)跳过多个相同的行。
好了,再回头看看最前面的命令,已经没那么难理解了吧。
参考文献:man od

展开阅读全文

没有更多推荐了,返回首页