分离<class'byte'>的部分并将其打印到屏幕上

2024-05-16 10:58:32 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我用Pydivert捕捉数据包。我可以使用

print(packet.tcp.payload)

print(packet.payload)

产量为

b'\x03\x00\x34\xe2\xd1' //continued like this

两种情况下的输出相同。我用打字机把字打印出来

print(type(packet.payload))

这表明该类型是

<class 'byte'>

我想从输出中获取前10个字节的位置,并将其键入,同时将其保存到一个变量中,以便在修改有效负载时,排除初始字节,然后修改其余部分。因此,我可以以某种方式将分离出来的字节附加到新创建的字节,以创建最终的字节流,例如:

TotalByteStream = (initial bytes which I separated out) + b'\x03\x00\x34\xe2\xd1\x78\x23\x45\x79' //continued like this as needed
//And then do
packet.payload = TotalByteStream

这可能吗


Tags: 字节packetthis数据包likepayloadxe2print
1条回答
网友
1楼 · 发布于 2024-05-16 10:58:32

我不确定我是否理解您的问题,但您可以用类似于字符串的方式操纵bytes

如果您有原始有效载荷:

>>> payload_1 = b'\x03\x00\xf4\xe2\xd1'
>>> type(payload_1)
<class 'bytes'>
>>> payload_1
b'\x03\x00\xf4\xe2\xd1'

可以对前几个字节进行切片

>>> part = payload_1[:2]
>>> part
b'\x03\x00'

然后创建一个新的有效负载,在其中预加part变量

>>> payload_2 = part + b'\xf5\xe5\xd5'
>>> payload_2
b'\x03\x00\xf5\xe5\xd5'
>>> payload_1
b'\x03\x00\xf4\xe2\xd1'

因此,您将获得一个具有相同起始字节的新有效负载。这回答了你的问题吗?还是我误解了你的问题

相关问题 更多 >