Поле переменной длины с использованием dpkt
Кто-нибудь знает, как реализовать поле переменной длины при создании собственного протокола с использованием dpkt?
то есть в scapy я мог бы сделать это так:
class MyLayer(Packet):
name = "MyLayer "
fields_desc=[
FieldLenField("len_bytesequence", None),
FieldListField("bytesequence", None, IntField("onebyte", 0), count_from=lambda pkt: pkt.len_bytesequence)
]
Использование dpkt не кажется таким простым. Вот пример для фиксированной последовательности байтов длиной 8 байт. То, что я ищу, это заменить 8 переменной длины, указанной в поле "len_bytesequence".
class MyLayer(dpkt.Packet):
__hdr__ = (
('len_bytesequence', 'H', 0),
('bytesequence', '8s', 0),
)
С наилучшими пожеланиями