在Windows平台上开发Wireshark dissector

一、背景

    公司某个项目的开发过程中使用了基于TCP的自定义协议。CS交互过程中的数据包是使用tls协商的会话密钥加密过的,使用Wireshark抓取的数据包没办法看出具体的通信数据。那么有没有办法直接看到通信数据明文呢?经过一番研究发现Wireshark提供的dissector插件机制提供了一个很好的解决方案。

二、编译Wireshark源码(3.4.4版本)

    Wireshark dissector没有独立的编译环境,需要跟Wireshark源码一起编译,所以第一步就是需要成功的编译Wireshark源码,具体的过程可以阅读源码根目录下的INSTALL文件,或者参考这篇文章

                       在Windows 10中源码编译Wireshark

在编译过程中遇到了Moc相关的报错,解决方案是打开源码根目录下的CMakeLists.txt,增加一行内容:set(CMAKE_AUTOMOC ON)

三、dissector开发

    dissector的开发可以参考源码目录下的doc/README.dissector、doc/README.heuristic等几篇说明文档,下面简单介绍下主要步骤。

1. 创建插件目录

在 plugins/epan目录下创建 vhsm 目录,然后将 plugins/epan/gryphon目录下的文件复制一份到foo目录下,将packet-gryphon名称改为packet-foo,修改对应的CMakeLists.txt等文件内容

2. 创建并编辑 CMakeListsCustom.txt

将源码根目录下的CMakeListsCustom.txt.example改名为CMakeListsCustom.txt(也可以复制一份出来改名),增加以下内容

set(CUSTOM_PLUGIN_SRC_DIR
    plugins/epan/vhsm
)

目的是告诉CMake把自己的dissector源码目录包含进来

3. 编写dissector代码

参考这篇文章:wireshark协议插件开发--官方文档中文翻译

4. 编译插件

重新编译wireshark源码,即可生成我们自己的插件dll文件了

四、plugin部署

    插件的部署很简单,把dll放到指定目录下就可以了,wireshark启动的时候会自动加载

1. 安装3.4.4版本wireshark至目录<InstallDir>

2. 把插件dll放到目录 <InstallDir>/plugins/3.4/epan 下

3. 运行wireshark

 

最后上一张效果图:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值