**如何创建一个 Wireshark 解析器,用于自定义协议,无需重新编译 Wireshark**

我长时间以来一直在寻找一种方法,可以编译并运行自定义 Wireshark 解析器,而无需重新编译整个 Wireshark 项目。 在网络上的许多地方,需要开发人员编写其插件并链接到 Wireshark。

然而,我发现一些人能够编写解析器并通过 Wireshark 的插件系统运行,这些插件的路径可以在 Wireshark 的“帮助/关于”部分找到。

尽管这些人成功地用 Lua 和 C++ 编写了解析器,但我尝试了许多教程,但我真的很困惑。

有谁能帮我实现在 Ubuntu 16.04 64 位上创建一个非常简单的 Wireshark 解析器的步骤吗?

点赞
用户1939076
用户1939076

有三种方法可以为 Wireshark 编写自定义分析器:

  1. C ++
  2. Lua
  3. Wireshark 通用分析器

几年前,我需要为我们公司使用的自定义协议编写一个分析器。我比较了这三个选项并了解了一些有关它们的知识。C++ 是最快的执行方式,但是最难学习和使用。Lua 和 WSGD 的执行速度大致相同。Lua 分析器是内置于 Wireshark 中的,但我发现它更难学习,因为您需要学习一种语言 (Lua),然后学习如何在该语言中编写分析器。WSGD 是专门为编写分析器设计的语言。它更像是一个结构定义,而不是流程控制语言。WSGD 网站上有文档和示例。很难找到关于 Lua 和如何在其中编写分析器的文档和示例。

2015 年,Graham Bioice 在 Sharkfest 上发表了题为“使用 WSGD、Lua 和 C 编写 Wireshark 分析器”的演讲。这是一个非常深入的主题,虽然对我来说来晚了。您可以在以下网址上获取幻灯片和观看演示:

出于我上面列举的原因,我选择了 WSGD。我编写了数千行代码,用于创建 WSGD 中三种自定义协议的分析器。我强烈推荐它。WSGD 网站是 http://wsgd.free.fr

2017-11-21 16:40:57