Wireshark插件编写
在抓包的过程中学习了使用wireshark,同时发现wireshark可以进行加载插件,便在网上学习了一下相应的插件开发技术。
需求
编写一个私有协议名为SYC,使用UDP端口9877进行传输,报文结构如下:
Type | Flag | Sequence number | IP Address |
Data |
编写Wireshark插件,使Wireshark可以识别出SYC协议。
实现
首先构造产生SYC协议报文的程序:
数据结构:
初始化:
默认向119.75.217.109(baidu.com)发送请求。
发送请求:
运行程序,在Wireshark中捕获如下数据包:
设置过滤方式为捕获后过滤,过滤条件为ip.dst == 119.75.217.109。
插件编写
Wireshark支持用Lua或者C进行插件开发。Lua相对于C来说,开发起来效率高,稍微熟悉Lua的语法就可以进行开发。
代码如下:
将该Lua文件保存在Wireshark目录下的/plugins/(版本号)中,并在Wireshark中,点击分析—重新载入Lua插件,可以看到如下结果:
协议名称变为SYC,同时下方有对SYC协议的分析,包括Type,Flag,Sequence number和IPv4 Address,在抓取数据包的Info里还都包含一句“hello world”。