6

对 pcap 文件运行 file 命令将打印出以下内容 -

$ file pcap.pcap
pcap.pcap: tcpdump capture file (little-endian) - version 2.4 ....

我一直在寻找一种方法来创建一个大端捕获文件,或者在线下载一个样本,但无济于事。

我也很困惑 pcap 中究竟是小端还是大端。据我了解,libpcap 捕获了它在网络上看到的内容。

4

3 回答 3

10

好吧,一种方法是在大端机器上运行 tcpdump 或 Wireshark;例如,尝试使用运行 OS X 的旧的基于 PowerPC 的 Mac。

除此之外,获取它们的唯一方法是查看Wireshark Wiki 的 SampleCaptures 页面,看看是否有任何捕获被描述为在基于 SPARC 的机器或基于 PowerPC 的机器上完成(或大端 MIPS 机器,例如 SGI 机器,但不是 DEC 机器),或在Wireshark 错误数据库中查找包含在大端机器上进行的捕获的错误。libpcap/WinPcap 按主机字节顺序写出捕获文件 - 目标是在写出实时捕获时消除字节交换开销,将负担转移到读取文件的程序。

而且,是的,libpcap/WinPcap 捕获他们在网络上看到的内容,但是它们添加了一个文件头,例如,数据包的链路层头类型,并为每个数据包添加一个数据包头,给出时间戳数据包,出现在网络上的数据包长度,以及捕获的字节数(如果捕获程序被告知以最大大小“切片”数据包,以减少 CPU 和 I/O 带宽例如,在捕获时,如果只有链路层、网络层和传输层标头是有趣的)。 信息是什么是大端或小端;实际的数据包数据是它在网络上的任何顺序(尽管数据包元数据,例如 802.11 的无线电信息,可能是标准字节顺序,例如用于radiotap无线电信息的 little-endian,或者可能是主机字节顺序,如Linux USB 元数据的情况)。

于 2013-02-21T02:41:19.490 回答
2

无耻的插件,但我写了一个转换pcap 文件字节序的实用程序:

https://github.com/ehrmann/pcap-endianness-converter

于 2015-05-07T13:38:08.290 回答
0

要转换 pcap 文件的字节顺序,您还可以使用 wireshark 或 tcpdump:

  • 使用wireshark,只需打开文件并保存,无需修改。保存的文件将与您的计算机具有相同的字节序。

  • 或使用 tcpdump,只需执行“sudo tcpdump -r inputpcapfile -w outputpcapfile”

这样,您可以将 pcap 文件转换为与您的计算机具有相同的字节序。假设您的计算机使用 little endian,而 pcap 文件是 big endian,则保存的文件将使用 little endian。这仅适用于一种方式,不可能使用它来转换为您的计算机以外的其他字节序。

于 2016-07-01T13:11:28.963 回答