如何向wireshark添加自定义协议分析器?

Mat*_*att 37 wireshark wireshark-dissector

我有一个自定义协议,我正在wireshark中查看.我认为如果wireshark可以为我解读它,那么我将不需要解码十六进制.虽然我在我的程序日志中这样做,但wireshark使用时间信息捕获整个会话,因此它在那里更有用.

这可以轻松完成吗?

mic*_*c_e 29

您可以使用Wireshark的LUA API编写解剖器.这样你就可以编写一个快速而肮脏的解剖器而无需下载Wireshark的代码,甚至是编译器.文档中显示一个非常简单但功能强大的示例.这样的LUA解剖器非常适合调试使用,甚至可以与您的项目一起分发.

如果您打算将解剖器提交到Wireshark官方存储库,您当然应该在性能和集成方面使用C语言实现它.

要使用解剖器,请创建一个文件my_dissector.lua并调用Wireshark,如下所示:wireshark -X lua_script:my_dissector.lua


Mat*_*nen 19

这取决于你对"轻松"的定义.这绝对可行 - Wireshark对可插拔的解剖器有很大的支持.

README.developer显然是解剖器开发的"最佳手册".看看,并自己决定.

  • 谢谢,这就是我追求的.我还发现了这个链接:http://www.wireshark.org/docs/wsdg_html_chunked/ChapterDissection.html (2认同)

Sna*_*ipe 6

另外,有些项目不是编写自己的解剖器,而是从定义中生成协议解剖器或在API之上提供DSL的项目:

  • wssdl-一个Lua库,它定义了一种基于Lua的领域特定语言,用于定义协议解剖器。
  • wsgd-通用解剖器,用于解析协议定义并使用它来解剖消息。
  • asn2wrs-一种将ASN.1规范和一些C胶编译到Wireshark解剖器的工具。
  • csjark-一种从C结构定义生成Lua解剖器的工具,可与Wireshark一起使用。