同时在tshark中运行lua解剖器和捕获器。

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

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

是否有一种方式可以从tshark命令行中调用解析器和tap,两者都是用Lua编写的?更普遍地说,任意数量的Lua脚本是否可以被调用,如果可以,它们是否会按照正确的顺序被调用?

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

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

但是我收到了一个错误:

tshark:Lua:加载期间发生错误:
 [字符串“ my_tap.lua”]:9'new'的第1个错误参数(Field_new:必须存在具有此名称的字段)

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

点赞
用户88888888
用户88888888

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

这意味着 Wireshark 必须进行更改,请在 Wireshark Bugzilla 上报告此问题。

2014-02-13 23:18:08
用户1623584
用户1623584

这个功能现已在 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-24 15:54:04