我想实现一种新的安全 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/