如何解决用于从 Pcap 文件中获取十六进制值字节转储的 Linux 命令
我需要一个 linux 命令来显示 PCAP 文件的 Hexdump。目前我正在使用 xxd PcapFile.pcap 命令。有了这个,我得到了 pcap 文件的十六进制转储,以及插入和 end 之间不属于 pcap 文件的其他字节。这些字节是回车、换行、新页、空字符等。我不希望十六进制转储显示这些字符。 是否有正确的命令只能显示pcap文件中的数据字节。
例如:
0000000: d4c3 b2a1 0200 0400 0000 0000 0000 0000 ................
0000010: 0000 0400 0100 0000 590d 9d60 abe9 0700 ........Y..`....
0000020: 3c00 0000 3c00 0000 0010 f393 8870 000c <...<........p..
0000030: 2998 7ecb aefe 1002 0014 0000 0080 9000 ).~.............
0000040: 0000 0101 0000 0000 0019 fffe 0000 0000 ................
0000050: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000060: 0000 0000 590d 9d60 abe9 0700 3c00 0000 ....Y..`....<...
我在最后和中间得到的字节是:
END: 0000 f404 0000
BETWEEN Each Packet: 0000 f404 0000 0600 0000 f404 0000 0000 0000 0000 0000 dc56 2d01 d204 0000 d204
解决方法
如果您要查找整个文件的十六进制转储,则可以使用 hexdump
,如下所示:
hexdump -vC PcapFile.pcap
,
如果“数据字节”是指数据包的原始十六进制字节,因此不会打印 24 字节的文件头和 16 字节的数据包头,一个将打印十六进制数据的命令 连同对数据包内容的剖析是
tcpdump -xx -n -r {file name}
将打印信息,例如
17:48:39.708517 ARP,Request who-has 10.120.4.255 tell 10.120.4.1,length 46
0x0000: ffff ffff ffff 00e0 5280 7600 0806 0001
0x0010: 0800 0604 0001 00e0 5280 7600 0a78 0401
0x0020: 0000 0000 0000 0a78 04ff 0000 0000 0000
0x0030: 0000 0000 0000 0000 0000 0000
这要求您安装了 tcpdump。
另一个命令,将只打印每个数据包的十六进制+文本转储,没有解剖,是
tshark -Q -x -r {file name}
(它将打印十六进制和文本;没有办法抑制转储的文本部分。文本显示可打印的 ASCII 字符,除非数据包用于某些 IBM 协议,其中数据在 EBCDIC 中,在这种情况下输出是 ASCII 但它是从 EBCDIC 翻译过来的。)
这要求您安装了 Wireshark(不过,如果您从操作系统提供的软件包进行安装,它可能具有单独的“Wireshark 核心”和“Wireshark GUI”软件包,如果是这样,则不会需要“Wireshark GUI”包)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。