如何在Wireshark dissector中从另一个dissector成功调用并获得指示

我有两个tcp dissectors监听同一个端口。

因此我选择了一个基础 dissector 监听该端口,并且此基础 dissector 持有2个tcp dissectors的信息。

当接收到该端口的数据包时,基础 dissector 进行foreach循环并尝试按其顺序调用这两个tcp dissectors 中的每一个。

我正在使用以下代码行:

res = Dissector.get("first_tcp_dissector"):call(buffer, pinfo, tree)

如果被调用的 dissector 成功解析了数据包,我期望它将返回一个数字(如果该数据包不是为其解析的,它将返回0)。

但是,dissector:call(tvb, pinfo, tree) 没有返回任何内容,并且我没有任何指示解析是否成功。

如何获取第一个_tcp_dissector 的真实返回值或者如果解析成功则获取一些指示?

(顺便说一下,我不想使用启发式方法…)

原文链接 https://stackoverflow.com/questions/41837842

点赞
stackoverflow用户2755698
stackoverflow用户2755698

你确定吗?因为如果你查看源代码,Dissector_call() 返回“Number of bytes dissected”。

也许你是在运行旧版本的 Wireshark,此版本是在2014年6月17日由 Anders Broman 提交的 Stig Bjørlykke 的更改之前的版本 update

2017-01-25 14:51:09