2016-02-14 45 views
1

我試圖僞造數據包是這樣的:陣列整數作爲Scapy的自定義字段的

p = IP()/TCP()/Unique() 

,獨特的是一個新的圖層:

class Unique(Packet): 
name = "Unique" 
fields_desc=[ IntField("a", 0), 
     IntField("b", 0), 
     IntField("c", 0)] 

我不知道如何定義一個包含整數數組的字段。 有沒有辦法做到這一點? 而不是有三個字段「a」,「b」和「c」,我想有一個字段包含三個整數。

由於3是一個變量數,另一種可能的方法,我可以使用是有ň IntField其中n是可變的,但我不知道該怎麼做,要麼,我希望得到任何幫助。

回答

1

我想FieldListField是你正在尋找的scapy aquivalent。它定義了任何數量的相同類型的字段的數組/列表。

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          ....