portal协议的lua插件

本文档介绍了一个项目需求,即实现私有的portal协议。在调试和抓包分析过程中,由于Wireshark原生不支持该协议,作者通过编写lua脚本插件实现了扩展。具体步骤包括编写lua脚本`portal.lua`,将其放置在Wireshark的安装目录,并在`init.lua`中引入该脚本,确保Wireshark的lua支持开启。
摘要由CSDN通过智能技术生成

       因为项目协议的需要,我们需要实现私有的portal协议,在调试抓包分析过程中,因为wireshark是不支持portal协议的,不过wireshark有一个好处,就是支持lua脚本插件来实现扩展协议的识别,于是自己动手,丰衣足食,加油!

       lua脚本如下:

--[[
	code
--]] 
do
     --[[
         创建一个新的协议结构 portal_proto
         第一个参数是协议名称会体现在过滤器中
         第二个参数是协议的描述信息,无关紧要
     --]]
     local portal_proto = Proto("portal", "Portal Protocol")
     local attribute_proto = Proto("attribute", "Portal Attributes:")
     
     --[[
         下面定义字段
     --]]
	 local portal_types = {
		[1]="REQ_CHALLENGE",
		[2]="ACK_CHALLENGE",
		[3]="REQ_AUTH",
		[4]="ACK_AUTH",
		[5]="REQ_LOGOUT", 
		[6]="ACK_LOGOUT",
		[7]="AFF_ACK_AUTH",
		[8]="NTF_LOGOUT",
		[9]="REQ_INFO",
		[10]="ACK_INFO"
	}
	 local version = ProtoField.uint8("portal.version", "Version", base.DEC, {[1]="Version 1", [2]="Version 2"}, 0x00)
	 local code_type = ProtoField.uint8("portal.type", "Type", base.DEC, portal_types)
	 local pap_chap = ProtoField.uint8("portal.papchap", "Pap/Chap", base.DEC, {[0]="CHAP",[1]="PAP"}, 0x00)
	 local reserved = ProtoField.uint8("portal.reserved", "Rsvd", base.DEC)
	 local serial_no = ProtoField.uint16("portal.serialno", "SerialNo", base.HEX)
	 local req_id    =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值