什么是 pcap 幻数 0xc3d4a1b2?
what is pcap magic number 0xc3d4a1b2?
我正在尝试编写一个程序来读取在 linux 中捕获的 pcap 文件(tcpdump 版本 4.5.1 libpcap 版本 1.5.3),但我无法正确进行字节交换。幻数不是我期望的值之一(0xa1b2c3d4 或 0xd4c3b2a1),而是 0xc3d4a1b2。 'file' 命令正确识别它(tcpdump 捕获文件(小端)- 版本 2.4(以太网,捕获长度 65535))并且 'tcpdump -r' 读取它但我不明白如何。幻数在我看来既不是小端也不是大端。十六进制转储看起来像:
0000000 c3d4 a1b2 0002 0004 0000 0000 0000 0000
0000010 ffff 0000 0001 0000 6be0 5a87 a747 0008
这个文件的字节顺序是什么?
这可能就是数据的显示方式。我假设您正在使用 hexdump
。默认情况下,此程序使用 two-byte 十六进制显示,即它正在读取两个字节并将其解释为无符号短整型:
$ hexdump file.pcap
0000000 c3d4 a1b2 ...
要获得 byte-wise 显示,您可以使用例如 -C
选项:
$ hexdump -C file.pcap
00000000 d4 c3 b2 a1 ...
或者你可以使用 xxd:
$ xxd file.pcap
00000000: d4c3 b2a1 ...
我正在尝试编写一个程序来读取在 linux 中捕获的 pcap 文件(tcpdump 版本 4.5.1 libpcap 版本 1.5.3),但我无法正确进行字节交换。幻数不是我期望的值之一(0xa1b2c3d4 或 0xd4c3b2a1),而是 0xc3d4a1b2。 'file' 命令正确识别它(tcpdump 捕获文件(小端)- 版本 2.4(以太网,捕获长度 65535))并且 'tcpdump -r' 读取它但我不明白如何。幻数在我看来既不是小端也不是大端。十六进制转储看起来像:
0000000 c3d4 a1b2 0002 0004 0000 0000 0000 0000
0000010 ffff 0000 0001 0000 6be0 5a87 a747 0008
这个文件的字节顺序是什么?
这可能就是数据的显示方式。我假设您正在使用 hexdump
。默认情况下,此程序使用 two-byte 十六进制显示,即它正在读取两个字节并将其解释为无符号短整型:
$ hexdump file.pcap
0000000 c3d4 a1b2 ...
要获得 byte-wise 显示,您可以使用例如 -C
选项:
$ hexdump -C file.pcap
00000000 d4 c3 b2 a1 ...
或者你可以使用 xxd:
$ xxd file.pcap
00000000: d4c3 b2a1 ...