wireshakr Dissector Bug: proto.c:1765

[Dissector bug, protocol Protobuf: proto.c:1765: failed assertion "(guint)hfindex < gpa_hfinfo.len"]

wireshakr Dissector Bug: proto.c:1765_第1张图片

Dissector Bug???怎么可能,难道是TCP数据被修改了吗?局域网哦,难道有病毒吗?

非也、非也,想多了,这个问题一般出现在基于TPKT的TCP cap包中,而且是已经保存的cap文件中,不是实时抓包的解析;

我们来分析一下上一个Length == 1514的包

wireshakr Dissector Bug: proto.c:1765_第2张图片

看到了吧, 1514这个包里面包含了 3个TPKT分包, (394+4)+(394+4)+(394+4)= 1194, 1514和 1194也相差太大了,就算加上TCP/IP的包头也不够啊。

在看看最后一个Message吧

wireshakr Dissector Bug: proto.c:1765_第3张图片

看到了吧,最后一个消息后面还有数据没有被解析呢?

这是wireshark的一个BUG,打开文件的时候,按照物理上接收到的包一给个的解析,没有合并一个逻辑包跨越2个物理包的情况;

很简单,我们都知道是什么协议,重新 Decode As 即可

  1. 在Filter中输入协议名称(protobuf)

  2. 鼠标右键 Decode as

  3. 选择协议(protobuf)

  4. 确定

  5. OK,以前显示正常了

wireshakr Dissector Bug: proto.c:1765_第4张图片

wireshakr Dissector Bug: proto.c:1765_第5张图片

wireshakr Dissector Bug: proto.c:1765_第6张图片

wireshakr Dissector Bug: proto.c:1765_第7张图片

展开后,可以看到wireshark正确的合并了2个TCP Segments。解析成功;

你可能感兴趣的:(wireshark,Dissector,proto.c:1765)