Erstellung eines eigenen Protokoll-Layers in Scapy

Es lassen sich relativ einfach eigene Protokolle in Scapy nachbauen. Dazu wird einfach eine Klasse erstellt, die von Packet erbt:

class MY_PROTO(Packet):
    name = 'Protocol Example'
    fields_desc = [
        BitField('field1', 0, 1),   # 1 Bit, initialized to 0
        BitField('field2', 3, 7),   # 7 Bit, initialized to 3
        LEShortField('count_1', 0), # 2-Byte - LittleEndian
        ShortField('count_2'),      # 2-Byte - BigEndian
    ]

:!: Mit Scapy gebaute Pakete sind byte-aligned, d.h. alle Bitfelder müssen am Ende ein volles Byte ergeben. Notfalls muss ein Padding eingefügt werden!

Längenangaben im Paket

Stuff