2015-08-20 58 views
2

我有一个用Lua编写的Wireshark解剖器,想单独测试它。我已经提取了一些不依赖于Wireshark函数的通用功能(并且在我的LuaJIT IDE中单独测试了这些功能),但是现在我处于需要测试缓冲区检查和转换功能的地步(buffer(1, 2):uint()等)。有没有办法从我的LuaJIT解释器访问内建的Lua函数(可能在Wireshark测试套件中),或者(可选)是否可以通过编程方式在一些PCAP文件上重新运行脚本(使用tshark)并以编程方式将测试结果输出到标准输出或文件?对我来说,另一个用例是手动指定数据包并在其上测试我的解剖器函数(即将数据包作为代码,而不必生成带有要测试数据包的PCAP文件)。测试Wireshark插件

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

回答

2

如果您的测试是针对调试进行的,Paul的ZeroBrane Studio是我所知道的唯一一个可以轻松与Wireshark合作的人。

如果你的意思是自动化测试(也就是说,它可以重复进行回归等),那么我们在Wireshark自己测试它们的过程是通过使用tshark和“-X lua_script:<script>”选项通过shell脚本运行它们,以详细模式输出到文本文件,然后验证输出文件是否具有我们预期的效果。 (例如,通过使用其他的Lua脚本,检查输出文本文件),如果您克隆回购,或browse it online

,你可以看到,在test/suite-wslua.sh文件,这是Lua的API测试套件shell脚本。并且测试的Lua脚本位于test/lua目录中。

2

我一直在开发一个允许调试在Wireshark“live”(包括解析器)中运行的Lua代码的Lua调试器。我没有用最新版本的Wireshark进行测试,但不明白为什么它不能继续工作。你可以在这里看到如何完成这个例子:http://notebook.kulchenko.com/zerobrane/debugging-wireshark-lua-scripts-with-zerobrane-studio

我不认为有一种方法可以直接在PCAP文件上重新运行脚本,但是您可以使用traffic generators之一(例如位扭曲)从捕获文件中“重放”流量,并以通常的方式调试你的脚本。