我想实现一种新的安全 ARP 协议(protocol),该协议(protocol)不受 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 根本不解析它并将数据保留为“原始”。
我阅读了关于扩展到新协议(protocol)的 SecDev 文档,但它非常不清楚。
我应该采取什么步骤来自动解析收到的 SecureArp 数据包?
谢谢

最佳答案

您必须将 bind your layer 转换为另一个,以便 scapy 自动剖析它。

另请参阅 scapys ARP 实现。

bind_layers( Ether,         ARP,           type=2054)

关于python - 向 scapy 添加新协议(protocol)(类似于 ARP),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35481093/

10-12 21:03