【问题标题】:Lua Wireshark ScriptingLua Wireshark 脚本
【发布时间】:2014-10-31 01:12:09
【问题描述】:

我刚刚开始在 Lua 中使用 wireshark,我已经很困惑了。根据http://wiki.wireshark.org/LuaAPI/Tvb#tvb:len.28.29,Tvb 具有函数“len”,但是当我在下面的代码中的 buf 或 pkt 上调用它时,出现“尝试调用方法 'len'(一个数值)”错误。获取 buf 或 pkt(它们是“tvb”对象)长度的正确方法是什么?

local myprotocol = Proto("proto","My Protocol Title");
function myprotocol.dissector(buf,pkt,root)
    local test = pkt:len() -- <--Throws error

【问题讨论】:

    标签: lua wireshark


    【解决方案1】:

    我认为参数有些混乱;根据Dissectors page:“当被Wireshark调用时,它们被传递(1)数据的TVB缓冲区(Tvb对象),(2)树根(TreeItem对象),以及(3)数据包信息记录(Pinfo 对象)。”来自同一页面上的示例:function trivial_proto.dissector(buffer,pinfo,tree)

    看来bufferTvb 对象,但pktPinfo 对象,所以您应该尝试buf:len() 而不是pkt:len()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-20
      • 2012-05-11
      • 1970-01-01
      • 2016-03-05
      相关资源
      最近更新 更多