【问题标题】:Converting HEX to ASCII in Lua Dissector在 Lua Dissector 中将 HEX 转换为 ASCII
【发布时间】:2014-09-05 03:57:29
【问题描述】:

我正在尝试获取 HEX 字节并将它们显示为它们的 ASCII 值。如果有人能合理地坚定地指出我正确的方向,我将不得不这样做。尝试了任意数量的 uint 类型命令,并使用 buffer(x, 2) 作为参数。

【问题讨论】:

  • 如果你想转换一个包含十六进制数字的字符串,你可以像print(string.char(tonumber("56", 16)))那样使用tonumber(打印V

标签: lua hex ascii wireshark


【解决方案1】:

我不知道你说的hex bytes是什么意思,但是相关的函数是:

【讨论】:

  • 我的意思是一对 HEX 位,不知道为什么我决定那是一个字节,谢谢,我会试试这些功能。
【解决方案2】:

对于十六进制的单个字符,您可以使用 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 函数可以将字节转换为十六进制。

【讨论】:

    猜你喜欢
    • 2019-09-13
    • 2015-10-30
    • 2015-12-19
    • 2012-05-14
    • 1970-01-01
    • 2018-08-30
    • 2014-08-25
    • 2015-08-12
    • 1970-01-01
    相关资源
    最近更新 更多