hexdump——linux系统的二进制文件查看工具
在Linux系统中,我们经常会遇到需要查看二进制文件内容的情况,如查看可执行文件的二进制代码、查看网络数据包的二进制内容等。此时,一个非常有用的工具是hexdump
。hexdump
是Linux系统下的一个十六进制查看工具,用于查看二进制文件的内容。下面,我们来介绍一下如何使用hexdump
来查看二进制文件。
安装hexdump
在大多数Linux系统中,hexdump
会默认安装。如果您的系统没有安装hexdump
,可以通过以下命令进行安装:
# Ubuntu/Debian系统
sudo apt-get install hexdump
# CentOS/Fedora系统
sudo yum install hexdump
# Arch Linux系统
sudo pacman -S hexdump
使用hexdump查看二进制文件
hexdump
命令可以查看二进制文件的十六进制内容、以ASCII码显示的字符、八进制和二进制表示。以下是hexdump
的使用方法:
$ hexdump [选项] 文件名
下面列出一些主要选项:
-C
:以十六进制和ASCII码混合的形式显示内容,方便阅读。-n 数字
:只显示前面指定的字节数。-s 数字
:跳过文件的前面指定字节数,从指定位置开始显示。
例如,以下是查看/bin/bash
二进制文件的命令:
$ hexdump -C /bin/bash
输出结果为
00000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 |.ELF............|
00000010 02 00 3e 00 01 00 00 00 90 7e 40 00 00 00 00 00 |..>......~@.....|
00000020 40 00 00 00 00 00 00 00 38 01 00 00 00 00 00 00 |@.......8.......|
00000030 00 00 00 00 40 00 38 00 09 00 40 00 1d 00 1c 00 |....@.8...@.....|
00000040 06 00 00 00 05 00 00 00 40 00 00 00 00 00 00 00 |........@.......|
00000050 40 00 40 00 00 00 00 00 40 00 40 00 00 00 00 00 |@.@......@.@....|
00000060 08 00 00 00 03 00 00 00 40 00 00 00 00 00 00 00 |........@.......|
...
...
可以看到输出以十六进制的形式显示了文件的所有字节,每十六个字节一行。行的前面会显示行号,以便于对二进制码的定位。除此之外,行的右侧也会显示每个字节对应的ASCII码字符,方便识别文件的内容。
除了使用-C
选项以外,还可以通过-b
、-o
选项查看内容的八进制或二进制表示。
使用hexdump查看网络数据包
在Linux系统中,可以使用tcpdump
命令来抓取网络数据包。而与此同时,我们也可以使用hexdump
命令来查看抓取到的数据包的内容。例如,以下是对eth0
网卡进行数据包抓取并使用hexdump
查看数据包内容的命令:
$ sudo tcpdump -i eth0 -c 1 | hexdump -C
以上命令将抓取eth0
网卡上的一个数据包,并利用hexdump
展示它的内容。输出结果如下:
00000000 00 0c 29 39 33 85 00 50 56 23 93 78 08 00 45 00 |..)93..PV#.x..E.|
00000010 00 28 d8 6d 40 00 40 06 ca 4b c0 a8 01 0d c0 a8 |.(.m@.@..K......|
00000020 01 01 bb 51 00 7b 09 53 8d eb 27 1f 6c 60 12 40 |...Q.{.S..'l`.@|
00000030 08 00 18 a0 ac 00 00 01 01 08 0a 00 17 1c e8 00 |................|
00000040 d0 ef 00 00 19 00 00 00 01 03 03 07 |............|
0000004d
通过以上的输出可以查看到该数据包的十六进制码,并且同样也可以看到每个字节对应的ASCII码,以方便我们了解数据包的内容。
总结
hexdump
命令是一个非常有用的在Linux系统中查看二进制文件内容的命令。通过对命令中不同的选项的选择,可以在不同的场景中得到不同类型的输出结果。它同样可以与其他命令相结合,如tcpdump
命令,方便我们查看网络数据包的内容。在我们对二进制文件的调试、调查时,hexdump
是必不可少的工具之一。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:hexdump——linux系统的二进制文件查看工具 - Python技术站