如何通过Scapy添加新协议
在 Scapy 中添加新协议(或更准确地说:新层)非常容易。所有的魔法都在田野里。如果您需要的字段已经存在并且协议不是太脑残,这应该是几分钟的事情。
一、简单的例子层是类的子Packet
类。层操作背后的所有逻辑都由Packet
类持有,并将被继承。一个简单的层由一系列字段组成,这些字段在组装层时将被连接起来,或者在分解字符串时被一个一个地分解。字段列表保存在名为 的属性中fields_desc
。每个字段都是字段类的一个实例:
class Disney(Packet):
name = "DisneyPacket "
fields_desc=[ ShortField("mickey",5),
XByteField("minnie",3) ,
IntEnumField("donald" , 1 ,
{ 1: "happy", 2: "cool" , 3: "angry" } ) ]
在这个例子中