我有一个由Wireshark创建的“.pcapng”二进制文件。
如何检测其中每个新包的开头?
是否有任何特定的字节序列?
或者,如何检测包的结尾?
答案 0 :(得分:8)
(我见过那些母语不是英语的人说的是“包”而不是“包” - 这两个词来自同一个词“pack”,同一个词可能用于其他概念语言 - 所以我假设你指的是网络数据包;在这种意义上,“包”通常不用于英语。)
pcap-NG文件格式在PCAP Next Generation Dump File Format文档中描述。 pcap-NG文件是一系列块;每个块在开头都有一个长度字段(最后,为了简化扫描向后通过文件)。并非所有块都包含数据包;这些块是分组块,扩展分组块和简单分组块。
请注意,libpcap 1.1及更高版本可以读取pcap-NG文件,因此任何使用libpcap读取捕获文件的程序,如果使用libpcap动态喜欢并在libpcap共享库为1.1或更高版本的系统上运行,或者静态运行与libpcap 1.1或更高版本链接,可以使用用于读取pcap文件的相同API读取一些pcap-NG文件,而无需对程序进行任何更改。 (pcap-NG文件包含多个接口,其中并非所有接口都具有相同的链路层标头类型或快照长度,因为当前的libpcap API不支持这种情况。)没有基于libpcap 1.1的WinPcap版本或者以后,所以WinPcap目前无法用于读取pcap-NG文件。
另一个可以读取pcap-NG文件的库是NTAR库。但是,它只能读取pcap-NG文件,而不能读取pcap文件。