Wireshark编译开发
一、搭建开发环境
可参考wireshark官网指导链接:Wireshark Developer’s Guide.
由于本人是新手,官网给出的安装并不十分详细,所以后来大部分参考的是这篇博文:搭建Wireshark开发环境(一).
上文给出了安装过程图片,比较详细,新手可参考。本文主要对上文做补充以及加上利用NSIS创建Wireshark安装程序的内容。
1、说明
- Wireshark开发使用了多个平台库,需要对其进行安装,约占内存15~20G;
- Win10与Win7都可进行,注意x86与x64的软件版本选择;
2、安装Visual Studio 2019
Visual Studio 下载链接:Visual Studio下载.
下载后进行安装,一路默认即可
3、安装Qt
Qt作用主要是应用程序的界面开发。Qt下载链接.
选择opensource-windows,下载安装,注意选择组件:
4、安装巧克力Chocolatey工具
Chocolatey相当于是工具下载软件,只需几条命令就可以将所需的大部分库和软件下载完成。
安装步骤如下:
在程序搜索框输入Powershell,管理员运行:
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
5、使用Choco安装第三方软件
同样是在管理员身份运行的Powershell界面下运行以下命令:
- choco install -y winflexbison
- choco install -y git cmake
- choco install -y strawberryperl
- choco install -y python3
- choco install -y cygwin
- choco install -y cyg-get
- choco install -y asciidoctorj xsltproc docbook-bundle
尽量在网络良好的状况下安装,如果安装失败请多尝试几次,一般来说都没有什么问题。
查看已安装情况:
choco list -local-only
6、下载Wireshark源码
新建存放源码的文件夹,如C盘下的Development,使用win + r 运行cmd:
1. cd C:\Development
2. git clone https://code.wireshark.org/review/wireshark
使用“Visual Studio 2019”编译
打开命令行终端,管理员运行以下命令:VS2019 x64 Native Tools Command Prompt
1. set WIRESHARK_BASE_DIR=C:\Development
2. set QT5_BASE_DIR=C:\Qt\Qt5.9.5\5.9.5\msvc2017_64
3. set PLATFORM=X64
4. set WIRESHARK_VERSION_EXTRA=-MasterCom-x64
5. set WIRESHARK_CYGWIN_INSTALL_PATH=C:\ProgramData\chocolatey\lib\Cygwin\tools\cygwin
6. mkdir C:\Development\wsbuild64
7. cd C:\Development\wsbuild64
--会下载一系列环境工具到:C:\Development\wireshark-win64-libs
8. cmake -G "Visual Studio 16 2019" -A x64 ..\wireshark
9. msbuild /m /p:Configuration=RelWithDebInfo Wireshark.sln
cmake编译成功如上图
项目生成成功
进入文件夹msbuild64/run/RelWithDebInfo,找到Wireshark.exe运行,即可查看软件情况。
后续开发,可借助Visual Studio 2019进行调试,开发
使用NSIS制作安装包
去官网下载NSIS:nullsoft scriptable install system
然后再下载NIS Edit界面编辑器
选择文件----新建脚本:
下一步,填写软件基本信息
设置图标与输出文件以及安装界面的语言
设置默认的安装目录及提示信息
添加要安装的文件
设置卸载界面
完成后编译脚本,即可生成一个基本的安装文件
三、所遇问题
1、 Microsoft.CppCommon.target:error MSB6006: “cmd.exe”已退出, 代码为1.
查看dissectors.log日志有以下信息:
UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x82 in position 13473: illegal multibyte sequence
显示编码格式问题,指向文件‘make-regs.py’,加encoding=’UTF-8’
参考网址https://www.cnblogs.com/mengyu/p/6638975.html.
2、程序跨设备运行时“系统错误,无法执行程序,找不到VCRUNTIME140_1.dll,请重新安装此程序”
解决办法:利用软件everything查找到C:\Windows\system32下的VCRUNTIME140_1.dll,直接复制进程序运行路径下即可跨设备运行
四、总结
利用everything查找文件会更加便捷。无论遇到什么问题,多去网上查找,总会有方法解决。