如何创建适合Lua链接的Wireshark DissectorTable?

时间:2015-03-20 17:16:41

标签: lua wireshark wireshark-dissector

我正在尝试剖析封装在UDP数据包中的专有协议。该协议是多层的,在最低层有一个非常简单的标题。该标头有一个类型字段,用于指示更高层协议的格式。

将我的最低协议链接到UDP端口号很容易,需要遵循大量示例。我不明白的是如何基于类型字段创建DissectorTable,以便我可以链接更高级别的协议。

我有低级协议的每个字段的ProtoField对象,用于在树中显示它。如何将DissectorTable及其Dissectors与类型字段中的值相关联?在更高级别的协议添加之前,我是否还需要填充DissectorTable?

1 个答案:

答案 0 :(得分:0)

您应该能够使用DissectorTable.new()函数为您的协议创建一个新的DissectorTable,并使用适当的参数,您可以在proto.dissector()定义之外执行,然后在您的内部调用创建的表通过使用适当的参数调用proto.dissector()mydissectortable:try()。其他Lua解剖器(即您的更高级别的解剖器)将使用DissectorTable.get()dissectortable:add()注册到此表中,就像使用基于C代码的正常解剖器表一样。