wireshark自定义解析协议插件

--   自定义一个协议
  local demo_protocol=Proto("demo"," my protocol")
--    定义协议字段


  local demo_len=ProtoField.uint16("demo_len","demo len",base.HEX)
  local demo_Id=ProtoField.uint8("demo_Id","demo Id",DEC)
  local demo_message=ProtoField.uint32("demo_message","demo Message",DEC)
  local demo_data=ProtoField.bytes("demo_data","demo data")
--将字段绑定到协议中  
  demo_protocol.fields={
     demo_len,
demo_Id,
demo_message,
demo_data
  
  }
  
--  调用dissector函数,这个函数被wireshark调用  
  function demo_protocol.dissector(buff,pinfo,tree)


--   设置UI信息,pinfo显示的信息  
pinfo.cols.protocol:set("demotest")
pinfo.cols.info:set("the protocol")


local buf_len=buff:len()
 
local treeroot=tree:add(demo_protocol,buff(0,buff_len),"自定义解析协议报文")
    local offset=0
    local usDemoType=buff(offset,2):le_uint()
       if usDemoType<1 then
          treeroot:add(demo_len,buff(offset,2))
  else
  pinfo.col.protocol:set("Invalia MessageType(".. demo test protocol  ..")")
  return
      end    
         treeroot:add(demo_Id,buff(4,2))
           treeroot:add(demo_message,buff(6,2))
           treeroot:add(demo_data,buff(0,buf_len-10))
end   
     local tcp_port_table=DissectorTable.get("tcp.port")
           tcp_port_table:add(6000,demo_protocol)  
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值