我尝试在 lua 上为 wireshark 编写解析器。我需要解析 header field version = 4 bytes (0x00000000)
我的代码:
do
local asc_sccp =Proto("asc_sccp", "ASC Skinny Client Control Protocol")
local f =asc_sccp.fields
f.length = ProtoField.bytes("asc_sccp.length", "length")
f.version =ProtoField.uint8("asc_sccp.version", "version", base.HEX, 0xC)
function asc_sccp.init()
end
function asc_sccp.dissector(buffer,pinfo,tree)
local subtree = tree:add (asc_sccp, buffer())
local offset = 0
pinfo.cols.protocol = asc_sccp.name
local length = buffer (offset, 4)
subtree:add (f.length, length)
subtree:append_text ("Data length: " .. length)
offset = offset + 4
local version = buffer (offset, 4)
subtree:add (f.version, version)
subtree:append_text (" Version: " .. version)
end
local tcp_table = DissectorTable.get("tcp.port")
tcp_table:add(2000, asc_sccp)
end
为什么我收到错误“尝试索引全局‘基’(零值)”? 你能帮忙吗,我看了很多解剖器的例子,但我找不到解决方案
最佳答案
这可能是因为 init.lua
没有安装。如果未安装开发包,这可能发生在基于 Redhat 的发行版(Fedora、Centos、RHEL 等)中。在这里查看答案:https://stackoverflow.com/a/40489742/409638
关于lua - 在协议(protocol)字段创建中发出 'attempt to index global ' base'',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10450701/