测试Wireshark插件

时间:2015-08-20 14:15:12

标签: lua wireshark

我有一个用Lua编写的Wireshark解剖器,想要独立测试它。我已经提取了一些不依赖于Wireshark函数的通用功能(并在我的LuaJIT IDE中单独测试它们),但现在我需要测试缓冲区检查和转换函数(缓冲区(1, 2):uint()et.al.)。有没有办法从我的LuaJIT解释器访问内置Lua函数(可能在Wireshark测试套件中)或(或者)我可以通过某些PCAP文件(使用tshark)以编程方式重新运行脚本并以编程方式将测试结果打印到stdout或文件?我的另一个用例是手动指定数据包并在其上测试我的解剖器功能(即将数据包作为代码而不是必须生成带有要测试的数据包的PCAP文件)。

其他人如何测试他们的Wireshark解剖器?

3 个答案:

答案 0 :(得分:2)

我一直在开发一个Lua调试器,允许调试在Wireshark“live”(包括解剖器)中运行的Lua代码。我没有使用最新版本的Wireshark进行测试,但不明白为什么它不会继续工作。您可以在此处查看示例:http://notebook.kulchenko.com/zerobrane/debugging-wireshark-lua-scripts-with-zerobrane-studio

我认为没有办法直接在PCAP文件上重新运行脚本,但您可以使用traffic generators中的一个“重放”来自捕获文件的流量(例如,位) -twist)并以通常的方式调试脚本。

答案 1 :(得分:2)

如果您的意思是测试调试,Paul的ZeroBrane Studio是我所知道的唯一一个很容易使用Wireshark的工作室。

如果您的意思是自动化测试(即,可以重复进行回归等),那么我们在Wireshark中自己测试它们的方法是通过shell脚本运行它们,使用tshark和#34; { {1}}"选项,在详细模式下输出到文本文件,然后验证输出文件是否具有我们期望的结果。 (例如,使用另一个检查输出文本文件的Lua脚本)

如果您克隆了repo或browse it online,您可以在-X lua_script:<script>文件中看到,这是Lua API测试套件shell脚本。测试的Lua脚本位于test/suite-wslua.sh目录中。

答案 2 :(得分:1)

这个问题已经很老了并且已经回答了,但我认为我有一些相关的东西要分享。 我一直致力于 Wirebait ,这是一个专门设计用于在编写时运行Wireshark解剖器的工具。

您所要做的就是加载模块并在解剖器脚本的顶部添加五个衬管片段。然后,如果您使用诸如Paul Kulchenko的ZeroBrane Studio之类的IDE, Wirebait允许您即时编写和调试代码,不需要wireshark。如果你没有pcap文件,你甚至可以在没有pcap文件的情况下离开。 它仍然是新的,但我能够非常可靠地使用它与UDP解剖器。