我有一些代码尝试通过从数据包中获取字符串值(我相信它返回一个字节串作为字符串)来将数据包有效负载提取为字节数组。我怎样才能以字节数组的形式获取原始有效负载?
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 = ""
Run Code Online (Sandbox Code Playgroud)
当我打印 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
Run Code Online (Sandbox Code Playgroud)
但似乎,这是一个字符串,而不是字节串,ad pdata[0] 返回'b'
我怎样才能得到“有效负载”作为bytes或bytearray?
不要使用str()函数字节对象
改成str(p[TCP].payload)p[TCP].payload.decode()
或者如果您只想将其作为字节,则只需返回它p[TCP].payload本身
bytes(p[TCP].payload)
| 归档时间: |
|
| 查看次数: |
9085 次 |
| 最近记录: |