2024-10-02 02:35:19 发布
网友
我要伪造的包裹是这样的:
p = IP()/TCP()/Unique()
其中Unique是一个新层:
我不知道如何定义包含整数数组的字段。 有办法吗? 我希望有一个包含三个整数的字段,而不是三个字段“a”、“b”和“c”。在
因为3是一个可变数,我可以使用另一种可能的方法是使用nIntField,其中n是可变的,但我也不知道如何做到这一点,我将非常感谢任何帮助。在
我想FieldListField是你所要寻找的东西的关键所在。它定义了同一类型的任意数量字段的数组/列表。在
FieldListField
class Unique(Packet): name = "Unique" fields_desc=[FieldListField("my_array", None, IntField("bla",0))] >>> Unique(my_array=[1,2,3,4,5]).show() ###[ Unique ]### my_array= ['1', '2', '3', '4', '5'] >>> hexdump(Unique(my_array=[1,2,3,4,5])) 0000 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 ................ 0010 00 00 00 05 ....
class Unique(Packet): name = "Unique" fields_desc=[ IntField("a", 0), IntField("b", 0), FieldLenField("num_records", None), FieldListField("c", None, IntField("number", 0), count_from=lambda pkt: pkt.num_records) ]
您需要包括FieldListField和FieldLenField。 有关详细信息,请参阅此文档。 http://www.dirk-loss.de/scapy-doc/build_dissect.html#the-variable-length-field
我想
FieldListField
是你所要寻找的东西的关键所在。它定义了同一类型的任意数量字段的数组/列表。在您需要包括FieldListField和FieldLenField。 有关详细信息,请参阅此文档。 http://www.dirk-loss.de/scapy-doc/build_dissect.html#the-variable-length-field
相关问题 更多 >
编程相关推荐