我试图获取十六进制字节并将其显示为ASCII值。如果有人能够合理地指出我正确的方向,我就有义务。尝试了任意数量的uint类型命令,并使用buffer(x,2)作为参数。
答案 0 :(得分:2)
我不确定十六进制字节的含义,但相关的功能是:
string.byte
,将字符转换为数字代码
string.char
,将数字代码转换为字符
答案 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
函数可以从字节转换为十六进制。