2013-02-20 48 views
5

针对PCAP文件运行file命令将打印出的线沿线的东西 -PCAP文件和字节顺序

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

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

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

回答

8

那么,一种方法是在大型机器上运行tcpdump或Wireshark;尝试获得,例如,一个旧的基于PowerPC的Mac运行OS X.

除此之外,获得它们的唯一方法是看看,如the Wireshark Wiki's SampleCaptures page,看看是否有捕获被描述为例如,基于SPARC的机器或基于PowerPC的机器(或者大型的MIPS机器,如SGI机器,但不是DEC机器),或者在the Wireshark bug database中查找包含捕获的bug在一个大型机器上。 libpcap/WinPcap以主机字节顺序写出捕获文件 - 目标是在写出实时捕获时消除字节交换开销,将负担转移到读取文件的程序。

而且,是的,libpcap/WinPcap捕获他们在网络上看到的东西,它们添加一个文件头,例如给出数据包的链接层头类型,并向每个数据包添加一个数据包头给出数据包的时间戳,数据包出现在网络上的长度以及捕获的字节数(在捕获程序被告知以最大尺寸“分片”数据包的情况下,减少例如,如果只有链路层,网络层和传输层头部有兴趣,捕获时的CPU和I/O带宽。 信息是什么大端或小端;实际的数据包数据以它在网络上的任何顺序存在(尽管数据包元数据(例如802.11的无线电信息)可能是标准字节顺序,例如无线电信息的小尾数,或者可能处于主机字节顺序,就像Linux USB元数据一样)。

+3

附加到Wireshark Bug#7221的捕获文件是big-endian ... https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7221 – willyo 2013-02-21 15:27:52

0

要转换PCAP文件的字节顺序,你也可以使用Wireshark的或tcpdump的:

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

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

这样你就可以转换PCAP文件,比电脑相同的字节顺序。说如果你的电脑使用little endian并且pcap文件是big endian,那么保存的文件将使用little endian。 这只适用于其中一种方式,使用这种方法不可能将您的计算机转换为其他字节序。