我正在尝试使用指定新的数据包格式scapy.在数据包中有一个项目列表,项目由"分组字段"组成."分组字段"是指不同类型的字段的子序列.在scapy中创建我所知道的"分组字段"的唯一方法是使用Packet类和使用FieldLenField/ PacketListField来引用序列的长度和列表成员的类型.这是要走的路吗?看起来像这样的东西:
from scapy.packet import Packet
from scapy.fields import *
class RepeatingGroupedSequence(Packet):
name = "Simple group of two fields"
fields_desc = [IntField('field1', 1),
IntField('field2', 2)]
class TopLayer(Packet):
name = "Storage for Repeating Sequence"
fields_desc = [FieldLenField("length", None, count_of='rep_seq'),
PacketListField('rep_seq', None, RepeatingGroupedSequence,
count_from = lambda pkt: pkt.length),
]
#Now here is the problem that I have with assembling PacketListField:
#craft TopLayer packet
p = TopLayer()
#add two "repeated sequences"
p.rep_seq = [ RepeatingGroupedSequence(), RepeatingGroupedSequence() …Run Code Online (Sandbox Code Playgroud)