文章目录
Wireshark Protobuf Lua-dissector
最近工作中遇到需要Wireshark抓包排查项目网络库的问题,并且需要用ProtoBuf协议解析抓到的二进制数据。网络上查了一圈都没有找到简单明了的教程能让我快速上手的,就搞了这个教程,帮自己纪录的同时也希望能帮到遇到同样问题的你。
这个教程专注于帮你写Lua插件帮你解析Wireshark中的ProtoBuf包,请确保已经掌握基础的Wireshark使用方法。如果还没掌握,网上有很多教学,很快就可以上手了!
Step 1: 获取 Wireshark
直接从 官网 下载。
Step 2: 配置ProtoBuf相关设置
添加ProtoBuf查找路径
顾名思义,告诉Wireshark去哪里查询你的.proto文件。我把我的所有(其实就一个).proto文件都放到了同一个文件夹里,然后添加到Wireshark里即可。
在版本 4.2.3中, 你可以通过一下方法配置ProtoBuf查找路径:
Edit -> Preferences,接着在左侧菜单中找到并展开Protocols标签,然后找到Protobuf并打开对应页面,就会得到以下的界面:
然后点击 “Protobuf search paths” 旁边的Edit按钮打开新窗口:
我把所有.proto文件都放一起了,也没有其他外部引用,所以我只添加了一个文件夹路径就OK啦。
Step 3 运行和调试Lua代码
1. 添加Lua脚本
创建并将我们自己写的Lua脚本放到指定文件夹中,Wireshark才能识别到我们的Lua脚本:
Help -> About Wireshark
点击Folder页签,双击Personal Lua Plugins路径打开文件夹,并将我们写好的脚本放入其中。
为了测试方便,我们现在只需要写一行简单的打印即可:
print("Hello World")
2. 运行和调试
成功将Lua脚本放到对应文件夹后,Wireshark会在每次启动的时候都运行一下你的脚本。你可以打开Lua控制台窗口看看脚本运行的结果。
打开控制台很简单,点击 Tools -> Lua Console: