Netexpert FAQ 网络分析专家学习建议入口 @netexpert成员申请指南
netexpert积分规则的说明 Netis招贤纳士(2008年11月22日更新)
发新话题
打印

wireshark插件程序遇到的一个问题

wireshark插件程序遇到的一个问题

自己的协议是基于UDP广播的,头几个字节的内容标示自己的协议,发送端口是随机的

实现过程中采用了
heur_dissector_add("udp",dissect_XXX_heur,proto_XXX);
用dissect_xxx_heur来过滤所有的UDP包

static gboolean dissect_xxx_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
     guint8 packet_type = 0;
     packet_type       = tvb_get_guint8(tvb, 0);
     if( packet_type != 0x01 && packet_type != 0x02 ) {
          return FALSE;
     else{
         dissect_xxx(tvb,pinfo,tree);
         return TRUE;
     }
}

但是发现如果发送端口是已经注册的端口,就无法正确解析,得不到优先解析数据包的权利
eg,port 是4000时和ICQ冲突..etc

由于发送端口不固定,不可能disable所有已经注册的UDP之上的协议吧?

谢谢啦!

TOP

在UDP的配置项里有一个启发式协议识别优先的选项,默认是关闭的,你去勾上并重启Wireshark即可。
说了世上一无牵挂为何有悲喜
说了朋友相交如水为何重别离
说了少年笑看将来为何常回忆
说了青春一去无悔为何还哭泣

TOP

发新话题
版块跳转