写入pcap文件时,Scapy以太网填充层丢失

问题描述

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

数据包的show功能显示了Padding层: pktn.show()

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

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

### [Raw] ### 负载='\ x00 \ x00 \ x00 \ x00 \ x00 \ x00'

有什么主意,为什么要保留填充层?否则,Wireshark会将填充字节识别为TCP有效负载。

感谢1

解决方法

好。我终于发现更改标题字段后,以下代码行会导致此问题:

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

我试图使用此代码为新数据包分配IP标头长度,但似乎是导致此问题的原因,如果没有此行,则IP标头长度对于新数据包来说就很好。我仍然不太了解其背后的原因,但看来问题已解决。

谢谢!

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...