我刚开始在卢亚为wireshark工作,我已经很困惑了。根据http://wiki.wireshark.org/LuaAPI/Tvb#tvb:len.28.29的说法,Tvb有"len“函数,但是当我在下面的代码中调用它时,我会得到一个"attemt来调用方法'len‘(一个数字值)”错误。获得buf或pkt长度的正确方法是什么(tvb对象)?
local myprotocol = Proto("proto","My Protocol Title");
function myprotocol.dissector(buf,pkt,root)
local test = pkt:len() -- <--Throws error发布于 2014-10-30 17:12:09
我认为参数有些混乱;根据分解页:“当被Wireshark调用时,它们被传递给(1)数据的TVB缓冲区( Tvb对象),(2)树根(TreeItem对象),(3)数据包信息记录(Pinfo对象)。”来自同一页上的示例:function trivial_proto.dissector(buffer,pinfo,tree)。
看来buffer是无线电视对象,但是pkt是Pinfo对象,所以您可能应该尝试buf:len()而不是pkt:len()。
https://stackoverflow.com/questions/26658915
复制相似问题