在Scapy中以字节数组形式获取数据包有效载荷

问题描述 投票:0回答:1

我有一些代码试图通过从数据包中获取字符串值来提取数据包有效载荷作为字节数组(我相信它会返回一个字节字符串作为字符串)。我如何才能将原始有效负载作为字节数组获取?

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 

但是似乎这是一个字符串,而不是字节字符串,广告pdata [0]返回'b'

如何获得“有效载荷”为bytesbytearray

python scapy
1个回答
1
投票

不要使用str()功能字节对象

str(p[TCP].payload)更改为p[TCP].payload.decode()

或者如果只是想将其作为字节,则只需返回p[TCP].payload它本身

© www.soinside.com 2019 - 2024. All rights reserved.