在Lua Dissector中将HEX转换为ASCII

时间:2014-07-15 04:47:08

标签: lua hex ascii wireshark

我试图获取十六进制字节并将其显示为ASCII值。如果有人能够合理地指出我正确的方向,我就有义务。尝试了任意数量的uint类型命令,并使用buffer(x,2)作为参数。

2 个答案:

答案 0 :(得分:2)

我不确定十六进制字节的含义,但相关的功能是:

答案 1 :(得分:1)

对于十六进制的单个字符,您可以使用lhf提到的string.byte。对于较长的序列,您可以在Lua中创建一个循环,但这不是非常有效,因为它涉及大量复制。

自Wireshark 1.11.3起,有一个Struct.fromhex函数将一串十六进制字符转换为二进制等价字符。

示例:

-- From hex to bytes (with no separators)
assert(Struct.fromhex("5753") == "WS")
-- From hex to bytes (using a single space as separator)
assert(Struct.fromhex("57 53", " ") == "WS")

类似地,有一个Struct.tohex函数可以从字节转换为十六进制。

相关问题