使用 Scapy 和 NetFilter 队列接收自定义协议数据包

Receiving Custom Protocol Packets With Scapy and NetFilter Queue

我正在做一个项目,涉及用包含某些特定字段的自定义层填充数据包。我设法使用这里的指南做到了这一点:

http://www.secdev.org/projects/scapy/doc/build_dissect.html

该指南很好地介绍了如何构建和发送带有自定义层的数据包,但不太了解如何接收它们。

我有一个格式为的数据包:

IP()/CustomLayer()/ICMP()

我将此数据包发送到另一台主机,该主机将使用 python 的 netfilter 队列和 scapy 库接收数据包。

我的问题是,如何接收包含自定义层的传入数据包并仍然可以访问这些字段?尝试用

解析数据包
IP(packet)

似乎没有用.. 任何帮助是极大的赞赏!

您试过先报空包吗?

pkt = IP()/CustomLayer()/ICMP()

然后

pkt = IP(packet)

看这里,您可能会找到问题的解决方案: