如何在 Scapy 中以 bytearray 的形式检索数据包有效负载?

How can I retrieve a packet payload as a bytearray in Scapy?

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

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 

但好像是字符串,不是字节串,ad pdata[0] returns 'b'

如何将 "payload" 设为 bytesbytearray

不要使用 str() 函数字节对象

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

或者如果你只是想要它作为字节,只是 return p[TCP].payload 它自己

更新

bytes(p[TCP].payload)