我正在为wireshark写解剖器。有一些数据包无法解析,因为该数据包中没有上下文。上下文包含有关数据包的 SDU 是哪种类型的信息。所以,我想在wireshark中注册一个菜单,用户可以选择SDU的类型。
但是存在一个问题,用户选择了SDU的类型后,必须先选择其他包,然后再重新选择包,这样才能再次调用解析器。
我的问题是有没有办法手动重新剖析选定的数据包?
我正在为wireshark写解剖器。有一些数据包无法解析,因为该数据包中没有上下文。上下文包含有关数据包的 SDU 是哪种类型的信息。所以,我想在wireshark中注册一个菜单,用户可以选择SDU的类型。
但是存在一个问题,用户选择了SDU的类型后,必须先选择其他包,然后再重新选择包,这样才能再次调用解析器。
我的问题是有没有办法手动重新剖析选定的数据包?
您说“有没有办法手动重新剖析选定的数据包?” 如果您真的是指手动,那么是的,用户可以手动执行此操作 - 他们可以单击工具栏上的重新加载图标按钮。
如果您的意思是自动地,通过让您的代码为用户执行此操作,那么是的 - 如果您正在用 C 代码编写此解析器:您可以调用redissect_packets()
, 通常随后redissect_all_packet_windows()
覆盖打开多个数据包详细信息窗口的情况。
所以,我想在wireshark中注册一个菜单,用户可以选择SDU的类型。
如果您将其设置为解析器协议的首选项,则无需修改 Wireshark 源即可更改菜单,并且在更改首选项时,所有数据包都将自动重新解剖。这就是我们期望手动配置的项目(例如在解剖器中处理的项目)的方式。