首页 > 解决方案 > 写入 pcap 文件时 Scapy 以太网填充层丢失

问题描述

当我尝试使用 Scapy 修改 IP 标头字段并使用 wrpcap 将修改后的数据包写入 pcap 时,以太网填充层更改为 Raw。

数据包的 show 函数显示 Padding 层:pktn.show()

###[ 填充]### 加载 = '\x00\x00\x00\x00\x00\x00'

但数据包的 show2 函数显示 Raw 层:pktn.show2()

###[原始]###加载='\x00\x00\x00\x00\x00\x00'

知道为什么会这样以及如何保留填充层吗?否则,填充字节被 Wireshark 识别为 TCP 有效负载。

谢谢1

标签: paddingscapyethernet

解决方案


好的。在更改标题字段后,我终于发现这行代码导致了问题:

pkt[IP].len = len(pkt['IP'])

我尝试使用此代码将 IP 标头长度分配给新数据包,但似乎它导致了此问题,并且没有此行,IP 标头长度对于新数据包来说很好。我仍然不太明白这背后的原因,但似乎问题已经解决。

谢谢!


推荐阅读