wireshark lua 创建新的tvb,并调用其他dissector

-- @brief MC_Q3E Protocol dissector plugin
-- @author jinxinhaizei
-- @date 2019-12-5 16:33:01

-- create a new dissector
local NAME = "mc_q3e_ascii"
local PORT = 6002
local mc = Proto(NAME, "MC_Q3E_ASCII Protocol ")





-- dissect packet

-- register this dissector
DissectorTable.get("tcp.port"):add(PORT, mc)



-- create fields of mc
local fields = mc.fields

fields.Qna3E = ProtoField.bytes (NAME .. ".Qna3E", "Qna3E")



-- dissect packet

function mc.dissector (tvb, pinfo, tree)		
		 
		 tree:add(mc,tvb())
		 local str=tvb():string()
		 print(str)
		 --local b1=ByteArray.new("010203")
		 local b1=ByteArray.new(str)
--对tvb进行修改,报文由ascii码改为hex格式 即 {0x30,0x31,0x30,0x32,0x30,0x33}改为{0x01,0x02,0x03}
		 local tvb_new = ByteArray.tvb(b1, "My New Tvb")
--调用其他dissector
		 local original_dis = Dissector.get("mc_q3e_bin")
		 original_dis:call(tvb_new , pinfo, tree)
		 --pinfo.cols.protocol = mc.name
end

发布了45 篇原创文章 · 获赞 1 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/oSiJieMo/article/details/103878271
今日推荐