测试 Wireshark 插件

Testing Wireshark plugins

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

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

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

我认为没有办法直接在 PCAP 文件上重新运行 脚本,但是您可以 "replay" 使用 traffic generators(例如,bit-twist)并以通常的方式调试脚本。

如果您指的是调试测试,Paul 的 ZeroBrane Studio 是我所知道的唯一可以轻松使用 Wireshark 的软件。

如果你的意思是自动化测试(即,它可以重复进行回归等),那么我们在 Wireshark 本身中所做的测试它们是通过 shell 脚本 运行 它们通过使用带有“-X lua_script:<script>”选项的 tshark,在详细模式下输出到文本文件,然后验证输出文件是否符合我们的预期。 (例如,使用另一个检查输出文本文件的 Lua 脚本)

如果您克隆 repo,或 browse it online,您可以在 test/suite-wslua.sh 文件中看到它,它是 Lua API 测试套件 shell 脚本。而测试的Lua个脚本在test/lua目录下

这个问题已经很老了并且已经回答了,但我想我有一些相关的东西可以分享。 我一直在研究 Wirebait,这是一个专门为 运行 编写 Wireshark 解析器而设计的工具。

您所要做的就是加载模块并在解析器脚本之上添加一个五行代码片段。然后,如果您使用 IDE,例如 Paul Kulchenko 的 ZeroBrane StudioWirebait 允许您即时编写和调试代码,而不需要 wireshark。如果你没有 pcap 文件,你甚至可以离开。 它仍然是新的,但我能够非常可靠地将它与 UDP 解析器一起使用。