【问题标题】:How to re-dissect the selected packet in wireshark?如何重新剖析wireshark中选定的数据包?
【发布时间】:2014-03-09 12:14:33
【问题描述】:

我正在为wireshark 编写解析器。有一些数据包无法解析,因为该数据包中没有上下文。上下文包含有关数据包的 SDU 是哪种类型的信息。所以,我想在wireshark中注册一个菜单,用户可以选择SDU的类型。

但存在一个问题,用户选择SDU类型后,必须先选择其他数据包,然后重新选择数据包,才能再次调用解析器。

我的问题是有没有办法手动重新剖析选定的数据包?

【问题讨论】:

    标签: wireshark wireshark-dissector


    【解决方案1】:

    您说“有没有办法手动重新剖析选定的数据包?”如果您真的是手动,那么是的,用户可以手动进行 - 他们可以单击工具栏上的重新加载图标按钮。

    如果您的意思是自动,而是让您的代码为用户执行此操作,那么是的 - 如果您使用 C 代码编写此解析器:您可以调用 redissect_packets(),通常后跟redissect_all_packet_windows() 覆盖打开多个数据包详细信息窗口的情况。

    【讨论】:

    • 请注意,如果您要构建 TShark 或 Qt 版本的 Wireshark,您的解析器将无法在 TShark 或 Qt 版本的 Wireshark 中工作,甚至可能无法编译,如果您从解剖器,因为该功能仅存在于 GTK+ 版本的 Wireshark 中。
    • 谢谢,我改用 reload 函数调用。
    【解决方案2】:

    所以,我想在wireshark中注册一个菜单,用户可以选择SDU的类型。

    如果您将其设置为解析器协议的首选项,则无需修改 Wireshark 源即可更改菜单,并且在更改首选项时,所有数据包都将自动重新解剖。这就是我们期望在解剖器中处理手动配置的项目的方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-03
      • 2017-07-12
      • 1970-01-01
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多