我怎样才能很好地将字段分组为scapy

时间:2013-11-29 13:37:21

标签: python scapy

我正在尝试解析WPS协议 我想以Wireshark的方式将一个领域中的许多领域分组 例如,在Wireshark中,数据元素类型,数据元素长度和版本分组在名为Version的字段下。

在这个例子中,Version是我唯一关心的字段 在Scapy中我想展示这样的东西:

>>>packet[WPS]
< WPS version=[Data Element Type=0x104a, Data Element Length=1,version=0x10] |>

如果我这样做:

>>>packet[WPS].version
0x10

现在,我有以下代码:

wps_message_types = {   4:"M1",
                    5:"M2",
                    7:"M3",
                    8:"M4",
                    9:"M5",
                    10:"M6",
                    11:"M7",
                    12:"M8",
                    15:"WSC_Done" }
class WPS(Packet): # eap type 253 vendor id 0x372a
    name = "Wi-Fi Protected Setup"
    fields_desc = [ ByteField("opcode", 1),
                    FlagsField("flags", 0, 8, ['more_flags', 'length']),
                    ShortField("Data_Element_type(version)", 0),
                    ShortField("Data_Element_lenght", 0),
                    ByteField("Version", 0),
                    ShortField("Data_Element_type:(Message type)", 0),
                    ShortField("Data_Element_length", 0),
                    ByteEnumField("Message_type", 0, wps_message_types),
                    StrField("data","")
        ]
    def getType(self):
        return wps_message_types[self.Message_type]

我怎样才能做到这一点?

0 个答案:

没有答案