wireshark-lua解析自定义协议

本文介绍了如何使用Wireshark的Lua脚本解析自定义协议,重点讲解了Lua的基本概念和如何编写脚本进行协议解析。通过将Lua脚本放入Wireshark的plugins目录或在init.lua中引入,可以实现自定义协议的自动加载和解析。内容包括如何声明字段、创建协议分支,并将解析结果显示在info列上。
摘要由CSDN通过智能技术生成

wireshark-lua解析自定义协议


前言

wireshark 支持使用 lua 脚本来解析自定义的协议。
最近因工作需要接触了一下。我的需求是 不细抠lua的语法,而要快速的使用上,将我的协议数据解析出来,显示各项信息方便分析数据。
现稍作整理,分享给和我有相似需要的伙伴。



一、Lua概览

和其他语言可能不太一样的:

  • 以行分割,不需要分号
  • 注释符号为 --(两个减号)
  • 不等于是 ~=
  • 没有++和+=,需要显示写 i = i + 1
  • 变量有两种,全局和local,带local声明的就是局部的
  • 函数调用使用 a:fun(),即冒号

代码块使用 缩进和end 来划分:

  • if-else

    if i == 0 then a = 1 end
    elseif i == 1 then variable = 300
    else variable = 400 end
    
  • for

    for i = 0, 10, 1 do
    	print(i)
    end
    
  • while

    while i < 10 do
    	i = i + 1
    end
    
  • 函数

    function sum(arg1, arg2)
    	return arg1 + arg2
    end
    

二、脚本使用

1. 引入

旧版本的wireshark需要手动引入,而新的会自动加载。我的版本是 3.4.4,会自动加载。

先找到wireshark的安装目录: 帮助–>关于Wireshark –>文件夹 可以查看所有的路径
重新加载各种lua脚本快捷键是: ctrl+shift+L

  • 自动加载:

    将自定义的lua脚本放到 xxx \ Wireshark \ plugins 下就可以了,这个目录下的子目录也都会扫描,按一下快捷键看有没有加载就知道了。没有就要手动引入

  • 手动加载
    自定义的脚本可以就放在 plugins,随意。在安装目录下找到 init.lua文件,这是脚本的入口。在文件的最后引入你的文件

    	--DATA_DIR是 init.lua所在路径,..是字符串连接符
    	--也可以用绝对路径,只要找得到就行
    	dofile(DATA_DIR.."mylua/mypro.lua")
    

2.内容

  1. 主要框架

    -- 定义自己的协议,name和description,未添加字段
    
  • 9
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值