Извлечение полезной нагрузки пакета как байтового массива в Scapy - PullRequest
0 голосов
/ 16 октября 2019

У меня есть некоторый код, который пытается извлечь полезную нагрузку пакета как байтовый массив, получая строковое значение из пакета (я полагаю, что он возвращает строку байтов в виде строки). Как я могу просто получить необработанную полезную нагрузку в виде байтового массива?

packets = rdpcap(pcapFile)
p = packets[0]

if TCP in p:
    pdata = str(p[TCP].payload)
elif Raw in p:
    pdata = str(p[Raw].load)
elif TLS in p:
    pdata = str(p[TLS].msg)
else:
    pdata = ""

Когда я печатаю pdata, это выглядит так

b'\x17\x03\x01\x00 a\xb9j\x17#\xb9uX\xdf\xe3\x08\xe0\xbc\xc3\xce\xa2=\xda\xc9\xd7\x1d7*\xad\xc9Y\xcer1\xdc\xb2\xd1\x17\x03\x01\x00 

Но кажется, что это строка, а нестрока by ad pdata [0] возвращает 'b'

Как получить "полезную нагрузку" в виде bytes или bytearray?

1 Ответ

1 голос
/ 16 октября 2019

Не использовать str() объект байтов функции

изменить str(p[TCP].payload) на p[TCP].payload.decode()

или, если вы просто хотите, чтобы это было в байтах, просто верните p[TCP].payload it self

Обновление

bytes(p[TCP].payload)

...