wireshark如何写一个lua脚本解析自定义报文字段?(Proto、DissectorTable.get、function .dissector、dissector_table:add)

步骤

  • 定义私有protocol:local myprotocol = Proto("my proto", "My proto"),需要Proto的类来定义
  • 获取DissectorTable:local dissector_table = DissectorTable.get("udp.port") 获取解析表,并且用udp.port去获取
  • 定义解析函数 function myprotocol.dissector(buffer, pinfo, tree), 这里的myprotocol是定义的协议的类实体,然后实现它的成员函数dissector,以便解析。 这里还包括定义myprotocol的fields字段,方便function中将fields加入到tree中
  • 最后将udp的端口和私有proto加入到dissector_table中。dissector_table:add(udpport, myprotocol)

实操效果


```c
local p_multi = Proto("multi", "MultiProto");

local vs_protos = {
   
   
        [2] = "mtp2",
        [3] = "mtp3",
        [4] = "alcap",
        [5] = "h248",
        [6] = "ranap",
        [7] = "rnsap",
        [8] = "nbap"
}

local f_proto = ProtoField.uint8("multi.protocol", "Protocol", base.DEC, vs_protos)
local f_dir = ProtoField.uint8("multi.direction"<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值