0

我有一个自定义解析器(用 Lua 编写),我在当前项目的许多方面都在使用它。

我还想写一个水龙头来为特定任务执行一些特定的计算。出于模块化的目的,我想将其与通用解析器分开。

有没有办法从 tshark 命令行调用一个用 Lua 编写的解剖器和一个水龙头?更一般地说,是否可以调用任意数量的 Lua 脚本,如果可以,它们会以正确的顺序被调用吗?

编辑: 我尝试从命令行调用这两个脚本:

tshark -Xlua_script:my_diss.lua -Xlua_script:my_tap.lua -r my.pcap

但我收到一个错误:

tshark: Lua: Error during loading:
 [string "my_tap.lua"]:9: bad argument #1 to 'new' (Field_new: a field with this name must exist)

此行引用的字段名称是在 中创建的,但在加载my_diss.lua时显然不可见。my_tap.lua

4

2 回答 2

1

这将需要告诉 libwireshark 中的“初始化 Lua”代码,哪些 Lua 脚本是解析器,哪些 Lua 脚本是点击,并在适当的时间加载它们,以便例如在所有点击之前加载所有解析器。

这意味着必须更改 Wireshark。请为此在 Wireshark Bugzilla提交错误。

于 2014-02-13T23:18:08.220 回答
0

现在,wireshark 代码库(1.8.5 版)支持这一点。我从源代码构建并能够获得所需的行为。

相关问题是:https ://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6020

相关的提交是:http ://anonsvn.wireshark.org/viewvc?view=revision&revision=47877

于 2014-02-24T15:54:04.043 回答