【问题标题】:Wireshark dissector - How to use dissectortable:add(pattern, dissector) with ANY pattern?Wireshark dissector - 如何使用 dissectortable:add(pattern, dissector) 与任何模式?
【发布时间】:2014-06-24 21:22:53
【问题描述】:

我正在为 Wireshark 创建一个自定义解析器。我正在将我的解剖器添加到解剖器表中,就像这样......

udp_table = DissectorTable.get("udp.port")
udp_table:add(7777,my_proto)

但是,我希望它处理任何 udp 端口​​或至少一个非常大的范围,而不是我的解析器只处理 udp 端口​​ 7777。

我该怎么做?

它在documentation 中说,它说我可以用一个范围替换 7777(模式),但我不确定它的语法是什么。

谢谢!

【问题讨论】:

    标签: wireshark wireshark-dissector


    【解决方案1】:

    理论上,使用 Lua 字符串为dissectortable:add() 的第一个参数添加一个范围,其中字符串是一个范围,例如“7777-8888”。但是,现在可能存在阻止该功能正常工作的错误(请参阅this ask.wireshark.org thread)。

    无论如何,您应该让您的解析器在每个 UDP 端口上运行,因为这不是真的,并且会与一大堆众所周知的 UDP 发生冲突端口使用(例如,DNS、UPNP、SIP 等),以及动态使用的端口,例如 RTP 和 RTCP。

    也许你真正想做的是有一个启发式解析器?如果是这样,您可以从wireshark v1.11.3 及更高版本(最新的wireshark 版本是1.12rc2)开始使Lua 解析器成为启发式解析器。请参阅API docs for proto:register_heuristic,以及Lua examples page 顶部的示例dissector.lua script

    【讨论】:

    • 感谢您提供有关启发式解析器的部分。我想这就是我需要的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    相关资源
    最近更新 更多