我们在日常开发中有时候会遇到查看二进制文件的场景,直接打开的话往往会让我们直呼外星人。此时我们就需要各种二进制查看工具了,帮助我们更好的查看二进制文件。
hexdump
查看二进制文件
hexdump
是 linux
下一个用于查看二进制文件的命令,它可以将二进制文件转换成十六进制的格式并打印出来,结果如下:
此外 hexdump
提供了各种选项实现数据格式的转换:
hexdump -C Main7.class
显示文件的 ASCII
格式
-C
命令可以显示对应字节的ASCII格式,并追加到最后面。
-C Canonical hex+ASCII display. Display the input offset in hexadecimal, followed by sixteen space-separated, two-column, hexadecimal bytes, followed by the same sixteen bytes in %_p format enclosed in ‘|’ characters.
hexdump -b Main7.class
以单字节转换为八进制显示目标二进制文件
-b
选项会将所有数据以单字节为单位转换为十进制的格式显示,如这里第0个位置十六字节的fe
对应的十进制为 312
等。
xxd
命令查看二进制文件
xxd
命令的直接使用与 hexdump -C
的格式类似,打印的结果包含地址,十六进制格式和字符格式(单字节为单位)。
使用 od
命令查看二进制文件
od
命令与上述两种命令有所区别,是它的显示格式与前两者不同,通过 od
命令可以打印出二进制文件的 十六进制格式和 十进制的格式。
[root@node01 demo02]# od -tx1 -tc -Ax Main7.class
-tx1
选项表示将文件中的字节以十六进制的形式列出来,每组一个字节(类似hexdump的-c选项)-tc
选项表示将文件中的ASCII码以字符形式列出来(和hexdump类似,输出结果最左边的一列是文件中的地址,默认以八进制显示)-Ax
选项要求以十六进制显示文件中的地址
-A
,--address-radix
=RADIX
output format for file offsets; RADIX is one of [doxn], for Decimal, Octal, Hex or None
-A
显示地址索引,根据指定的格式显示地址。示例:-Ax
以十六进制格式显示地址;-Ad
以十进制格式显示地址;-Ao
以八进制格式显示地址;-An
不显示地址。
-t
,--format
=TYPE
output format or formats
-t
指定输出格式,可以指定多个输出格式,对应列举出来。示例:-tx1 -tc
表示分别以十六进制,一字节为单位;和ASCII格式,一字节为单位显示数据,结果如下:
下面为一些 -t
选项对应可以输出的格式
参考资料
shell命令:xxd命令
Linux: 查看二进制文件
xxd 介绍
linux 命令 xxd linux下查看二进制文件