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

本文介绍了一个使用Lua编写的网络协议解析器插件,该插件能够将ASCII码格式的MC_Q3E协议数据转换为十六进制格式,并调用另一个二进制协议解析器进行深入解析。此插件注册了TCP端口6002,创建并注册了名为MC_Q3E_ASCII的协议,通过定义字段、修改字节序列和调用其他协议解析器实现了数据包的完整解析。
AI助手已提取文章相关产品:
-- @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

 

您可能感兴趣的与本文相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值