首页 > 解决方案 > Wireshark 开发 - registerTapListener

问题描述

我是使用 Wireshark 开发的新手,我必须承认我在订阅解剖消息和解析返回的解剖树的源代码和文档中有点迷失。我修改的目标是使用点击订阅所有 UDP 消息并解析帧的低级别细节以了解我是否对它感兴趣以用于统计目的。对于下面的所有示例,我都有 WiresharkDialog (ui) 的子类:

为 UDP 数据包注册 Tap 侦听器

   registerTapListener("udp",this,"",TL_REQUIRES_PROTO_TREE, tapReset,
                        tapPacket,
                        tapDraw);

然后,我尝试读取分接数据包 epan_dissect_t,以查看解剖树,但显然遗漏了一些东西。

tap_packet_status test::tapPacket(void *iog_ptr, packet_info *pinfo, epan_dissect_t *edt, const void *)
{
 qDebug() << "Epan proto Name " << edt->pi.current_proto;
}

返回“”;

我读过的文档似乎并不建议我需要运行 epan_dissect_run 来剖析我可能错的数据包。我还想了解如何剖析 UDP 下的所有低级协议,包括一些通过 Lua 脚本加载的自定义协议。

并且建议或指针(即使是文档/示例)将不胜感激。

标签: c++wireshark

解决方案


推荐阅读