houshangling 2017-12-20 11:05 采纳率: 50%
浏览 1204
已结题

wireshark插件开发遇到的一个问题

公司的业务在标准的PDCP协议前面加了44个字节的自定义数据,现在想做个wireshark的插件用于数据包解析。

要求是自定义的44个字节不解析,只解析44个字节后的标准的PDCP协议。
但是遇到一个问题:插件跳过了前面的44个字节,然后调用find_dissector函数找wireshark已经实现的PDCP协议解析器,但是解析后在页面上什么都没有显示。

代码如下:

 //包解析
int packet_parse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset)
{
    int item_offset = 44;

    gint16 pdu_len = tvb_reported_length(tvb);

    proto_item * pdcp_item = proto_tree_add_item(tree, proto_dtmpdcp, tvb, 0, -1, ENC_NA);
    proto_item_append_text(pdcp_item, ",PDU len : %-05u", pdu_len);

    proto_tree * subtree = proto_item_add_subtree(pdcp_item, ett_dtmpdcp);
    offset += item_offset;

    dissector_handle_t handle = find_dissector("pdcp-lte");

    if(handle)
    {

        tvbuff_t* next_tvb = tvb_new_subset(tvb, offset, -1, pdu_len - item_offset);
        if(next_tvb)
        {
            call_dissector(handle, next_tvb, pinfo, subtree);
            //tvb_free(next_tvb);
        }
    }

    return 0;
}

在wireshark上呈现如下:

图片说明

请问有知道这是什么原因么?谢谢

  • 写回答

2条回答 默认 最新

  • 莫问归期丶 2017-12-20 11:50
    关注

    地址冲突了,导致的问题你可以试试。

    评论

报告相同问题?

悬赏问题

  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题