首页 > 其他 > 详细

wireshark 数据协议解析

时间:2020-07-09 12:31:36      阅读:109      评论:0      收藏:0      [点我收藏+]
local p_multi = Proto("multi", "MultiProto");

local f_Ver = ProtoField.uint8("multi.ver", "Ver", base.DEC, nil, 0xf0)
local f_Type = ProtoField.uint8("multi.type", "Type", base.DEC, nil, 0x0f)
local f_TotalLen = ProtoField.uint8("multi.totalLen", "TotalLen", base.DEC)
local f_Hop = ProtoField.uint8("multi.hop", "Hop", base.DEC)
local f_Reserved = ProtoField.uint8("multi.reserved", "Reserved", base.DEC)
local f_Data = ProtoField.string("multi.data", "Data", base.UNICODE)

p_multi.fields = {
    f_Ver, 
    f_Type, 
    f_TotalLen,
    f_Hop,
    f_Reserved,
    f_Data,
}

local data_dis = Dissector.get("data")

local protos = {
        [2] = Dissector.get("mtp2"),
        [3] = Dissector.get("mtp3"),
        [4] = Dissector.get("alcap"),
        [5] = Dissector.get("h248"),
        [6] = Dissector.get("ranap"),
        [7] = Dissector.get("rnsap"),
        [8] = Dissector.get("nbap"),
        [9] = Dissector.get("rrc"),
        [10] = DissectorTable.get("sctp.ppi"):get_dissector(3), -- m3ua
        [11] = DissectorTable.get("ip.proto"):get_dissector(132), -- sctp
}

function printS(s,desc)
    desc = desc or ‘‘
    local t = ""

    for i=1, #s do 
        t = t .. string.format("%#x,",string.byte( s, i, i)) 
    end
    print(desc,t)
end

function getUTF8(buf)
    local s2 = buf:bytes()
    return s2:raw()
end

function p_multi.dissector(buf, pkt, tree)
        local subtree = tree:add(p_multi, buf(0))
        local TotalLen = buf(1,1)
        subtree:add(f_Ver, buf(0,1))
        subtree:add(f_Type, buf(0,1))
        subtree:add(f_TotalLen, TotalLen)
        subtree:add(f_Hop, buf(2,1))
        subtree:add(f_Reserved, buf(3,1))

        local len = math.min(TotalLen:uint(), buf:len()-4)
        subtree:add(f_Data, getUTF8(buf(4,len)))
end

-- local wtap_encap_table = DissectorTable.get("wtap_encap")
local udp_encap_table = DissectorTable.get("udp.port")

-- wtap_encap_table:add(wtap.USER15, p_multi)
-- wtap_encap_table:add(wtap.USER12, p_multi)
udp_encap_table:add(9999, p_multi)

 

wireshark 数据协议解析

原文:https://www.cnblogs.com/dzqdzq/p/13272857.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!