转换包含随机字符的 dpkt 字节字符串

convert dpkt byte strings containing random characters

我正在使用 dpkt python 模块来解析 pcap 文件。我正在深入研究一些数据被表示为字节流的数据包。我可以很容易地从常规字节字符串转换,但是一些字节字符串显示为:

\t\x01\x1c\x88

第一个值应该是 09,但是由于某种原因它使用了转义制表符。 (制表符的十六进制代码是 09)。

它也在为其他流中的其他角色执行此操作。

更多示例输出:

\x10\x00@\x00\

\x05q\x00\x00\

\x069\x9c\n\x00

所以我的问题是:我可以将这个字节流转换为没有这些额外字符的字节流吗?

或者,我如何将'\t'之类的东西转换为十六进制,以便它 returns '09'?

更新:

事实证明,我正在创建要使用 return 函数转换的字符串 \t011c88 代替第一个流。

别管它,使用 stream.encode("hex") 有效

默认情况下,repr 函数会转义所有不可打印的字符,如您所见。

要获得仅十六进制表示,请使用

string.encode("hex")

注意:原始字节流是正确的,您应该仅出于查看目的而不是完整性目的转换为十六进制。它只是以一种奇怪的方式显示数据。