使用python/scapy分析pcap文件-缺少层

使用python/scapy分析pcap文件-缺少层,python,tcp,layer,scapy,Python,Tcp,Layer,Scapy,我的老板要我破译pcap文件并将帧写入数据库。因为我喜欢python,所以我搜索了一个可以做基本工作的库,找到了Scapy。我最初(在Windows上)的尝试进行得很顺利,但现在遇到了问题 我使用以下命令加载了测试pcap文件: pfile = rdpcap("test.pcap") 我通过以下方式查看单帧: pfile[123].show() 我将输出逐帧与加载到Wireshark中的相同文件进行比较(我将其用作测试参考) 虽然Wireshark与许多帧匹配,但也有一些帧显示了在Scapy

我的老板要我破译pcap文件并将帧写入数据库。因为我喜欢python,所以我搜索了一个可以做基本工作的库,找到了Scapy。我最初(在Windows上)的尝试进行得很顺利,但现在遇到了问题

我使用以下命令加载了测试pcap文件:

pfile = rdpcap("test.pcap")
我通过以下方式查看单帧:

pfile[123].show()
我将输出逐帧与加载到Wireshark中的相同文件进行比较(我将其用作测试参考)

虽然Wireshark与许多帧匹配,但也有一些帧显示了在Scapy中看不到的TCP层

在这个阶段,我认为是我不理解一些东西,但它是什么?谁能给我一个提示吗


顺便说一句:我使用的是Python 2.7,并为Scapy 2.3.1和pcap 1.1(Windows 7)安装了二进制软件包。

Wireshark是一个相当先进的数据包分析器,因此它能够显示该层使用的协议。虽然Scapy只会向你展示基本层和一些附加协议,所以它实际上并没有遗漏层,只是没有向你展示该层使用的协议。虽然两个工具使用的数据相同。谢谢您的帮助。但我想知道斯卡皮无法破译的额外信息存储在哪里?它在框架的原始部分吗?我需要找到一种方法对其进行解码,以获得源端口和目标端口…好的,有效负载可以解码为TCP层,并匹配Wireshark显示的内容。到目前为止还不错,但如何判断有效负载(或任何字符串)是有效的TCP层还是UDP层?使用Scapy,我可以从任何随机字符串创建这些层,…这就是wireshark所做的。它有一个预定义的模板,帮助它识别那些层,而Scapy没有。