python-向scapy添加新协议(类似于ARP)

我想实现一种新的安全ARP协议,该协议可以防止ARP中毒.新的“ SecureArp”将包含一个签名字段,可以根据商定的hmac函数对其进行检查.
scapy定义如下:

  class SecureArp(Packet):
  name = "SecureARP"
  fields_desc = [IPField("srcip", None),
               MACField("srcmac", None),
               IPField("dstip", None),
               MACField("dstmac", "00:00:00:00:00:00"),
               IntEnumField("opcode", 1, { 1: "request", 2: "response" }),
               StrFixedLenField("challenge", "", length=24),
               StrFixedLenField("signature", "", length=20)]

我遇到的问题是,当接收到此类SecureArp消息时,scapy根本不会对其进行解析,而将数据保留为“原始”.
我阅读了有关扩展到新协议的SecDev文档,但尚不清楚.
我应该采取什么步骤,以便接收到的SecureArp数据包被自动解析?
谢谢

解决方法:

您必须将bind your layer设置为另一个,以便Scapy自动解剖它.

另请参见Scapys ARP的实现.

bind_layers( Ether,         ARP,           type=2054)
上一篇:python-Scapy-嗅探两个接口中的三个


下一篇:python-用scapy作为MITM即时更改数据包