lua - 在协议(protocol)字段创建中发出 'attempt to index global ' base''

标签 lua wireshark-dissector

我尝试在 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/

相关文章:

function - 从不同的 lua 文件调用函数

wireshark - 如何向wireshark添加自定义协议(protocol)分析器?

c++/c 访问具有不同名称和大小的多个字符数组

python - 如何使用Python从hexdump中提取数据包信息?

python - Pyshark - tshark 无法在 'decode_as' 中使用用户插件

c - 构建 Wireshark 时的错误和警告

python - Lua:动态判断对象是 "class"还是 "instance"

lua - lua中的多行函数表

sockets - luasocket 的问题

c++ - 嵌入式 Lua - 超时流氓脚本(例如无限循环) - 一个例子吗?