测试Wireshark插件

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

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

点赞
用户1442917
用户1442917

我一直在开发一个 Lua 调试器,它可以调试 Wireshark 中运行的 Lua 代码(包括展开器)。我还没有测试最新版本的 Wireshark,但不看到为什么不能继续工作。您可以在此处查看如何完成此操作的示例:http://notebook.kulchenko.com/zerobrane/debugging-wireshark-lua-scripts-with-zerobrane-studio

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

2015-08-20 15:38:43
用户3395060
用户3395060

如果您需要用于调试的测试,那么我所知道的唯一一个易于与Wireshark配合使用的是Paul的ZeroBrane Studio。

如果您需要进行自动化测试(例如可以用于回归测试等),那么我们在Wireshark本身中用于测试的方法是通过使用tshark的“-X lua_script:<script>”选项通过shell脚本运行,以详细模式输出到文本文件中,然后验证输出文件是否具有我们预期的内容。(例如,使用另一个检查输出文本文件的Lua脚本)

如果您克隆了代码库,或者在在线浏览中查看,您可以看到在test/suite-wslua.sh文件中,这是Lua API测试套件Shell脚本。而被测试的Lua脚本在test/lua目录中。

2015-08-21 12:39:14
用户7098036
用户7098036

这个问题已经很老,而且已经有解答了,但我认为我有相关的内容要分享。

我一直在开发 Wirebait 这个工具,它是一个专门设计的工具,可以在编写 Wireshark 协议解析器时运行。

你所需要做的就是加载模块,并在你的协议解析器脚本的顶部添加一个五行代码片段。然后,如果你使用像 Paul Kulchenko 的 ZeroBrane Studio 这样的 IDE,Wirebait 允许你直接在写代码的过程中进行调试,不需要使用 Wireshark。即使你没有 pcap 文件,你也可以使用它。

它还很新,但我已经能够非常可靠地使用它与 UDP 协议解析器一起工作。

2018-03-15 02:26:23