目录
一、背景
项目需要解析mongodb协议,需分析协议格式,以便编码。
因mongodb中使用bson格式来表述一个文件,略复杂,仅通过mongodb协议标准并不能对该协议格式有一个直观且清晰的认识,而在wireshark中看到的mongodb 报文是被加密的。
故想要通过修改wireshark代码、重新编译wireshark,看到被tls/ssl加密前的mongodb报文,以便对mongodb协议格式有更多的了解,方便编码。
二、获取wireshark-mongodb
链接:https://pan.baidu.com/s/1DNSEOKG6xBL2w1BXMi8Qlg
提取码:ve70
运行wireshark-mongodb目录下的Wireshark.exe即可
效果如下:
三、修改wireshark代码
在wireshark-{version}\epan\dissectors\packet-mongodb.c中,将proto_reg_handoff_m
ongo函数里的ssl_dissector_add(TCP_PORT_MONGO, mongo_handle);注释掉即可
四、编译wireshark
1、编译环境准备
(1) 准备
操作系统: Windows 10 专业版
Wireshark: Wireshark-3.4.7
在C盘根目录下创建Development,将Wireshark-3.4.7源码放到Development目录下,修改文件夹名Wireshark-3.4.7为wireshark
(2) 安装 Chocolatey
管理员身份运行cmd.exe
输入:@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
验证choco是否安装成功
(3) 安装VS2022
下载地址:
选择“使用 C++ 进行桌面开发”,点击安装
(4) 安装perf
下载地址:
https://strawberryperl.com/download/5.32.1.1/strawberry-perl-5.32.1.1-64bit.msi
一路下一步即可
(5) 安装cmake
管理员身份运行cmd.exe
输入: choco install -y cmake
添加cmake环境变量
验证cmake是否安装成功
cmake --version
(6) 安装Asciidoctor
管理员身份运行cmd.exe
输入:choco install -y zulu (安装Asciidoctor需要一个java runtime)
输入 :choco install -y asciidoctorj
验证 asciidoctor是否安装成功
where asciidoctorj
(7) 安装Xsltproc
管理员身份运行 cmd.exe
输入 choco install -y xsltproc
验证 xsltproc是否安装成功
where xsltproc
(8) 安装 DocBook
管理员身份运行 cmd.exe
输入 choco install -y docbook-bundle
(9) 安装 winflexbison
管理员身份运行 cmd.exe
输入choco install -y winflexbison
(10) 安装qt
在Qt下载页面https://iso.mirrors.ustc.edu.cn/qtproject/archive/qt/5.9/5.9.5/qt-opensource
-windows-x86-5.9.5.exe,选择Go open source,注册下载qt-opensource-windows-x86-5.14.1.exe;
默认安装即可
2、编译wireshark
(1)、生成wireshark build files
打开vs2022,右键属性页>链接器>优化>链路时间代码生成>使用链接时间代码生成 (/LTCG)
打开Visual Studio Command Prompt
设置环境变量
set WIRESHARK_BASE_DIR=C:\Development
set CMAKE_PREFIX_PATH=C:\Qt\5.15.2\msvc2019_64
set PLATFORM=X64
set WIRESHARK_VERSION_EXTRA=-MasterCom-x64
生成wireshark构建文件
cd 到 C:\Development\wireshark目录下
cmake -G "Visual Studio 17 2022" -A x64 ..\wireshark
(2)、编译wireshark
msbuild /m /p:Configuration=RelWithDebInfo Wireshark.sln
3、测试
运行 C:\Development\wireshark\run\RelWithDebInfo\Wireshark.exe,打开一个mongodb pcap