Windows中编译wireshark3.0以上版本指南

一、摘要

在网上已有的wireshark编译的网页文档中,只有编译wireshark1.0和wireshark2.0相关版本的内容,对于已经发布了的wireshark3.0以上版本的编译已不再适应。本文介绍了在Windows中编译wireshark3.0以上版本的具体操作流程,主要内容包括搭建环境和编译。本文是全网第一篇介绍wireshark3.0以上版本的中文文档,希望能给各位同仁带来帮助。

二、说明

什么样的人适合读此文章:

1、利用wireshark进行二次开发的人员。

2、自己开发的软件需要用到wireshark相应静态库或动态库的人员。

3、想通过读代码想深入学习wireshark的工作原理的人员。

三、具体流程

(一)简介

此节内容的写作将遵循如下格式:

1、标题(简要介绍所要作的事情)

a)给出所要执行的操作。

b)介绍本次操作的目的功能或者原因以及一些必要的解释。

想快速实现Windows中编译wireshark的同仁可以直接阅读每一小节内容的a)内容即可。

(二)环境搭建

1、安装Chocolatey

a)打开powershell,依次输入

PS C:\\> powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-objectnet.webclient).DownloadString('https://chocolatey.org/install.ps1'))"

PS C:\\> SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin

b)Chocolatey是软件自动化管理工具,它可以轻松管理软件的安装、配置、升级、卸载。有点类似于linux中的yum命令。这是我第一次用chocolatey,接下来让我们一起见证chocolatey的威力吧!

Chocolatey命令的格式为:choco [选项] 软件包。

常用的Choco选项有:

search - 搜索包

list - 列出包

install - 安装

pin - 固定包的版本,防止包被升级

upgrade - 安装包的升级

uninstall - 安装包的卸载

2、安装Microsoft Visual Studio

a)打开cmd(命令提示符工具),输入:

Choco install -y visualstudio2019community visualstudio2019-workload-nativedesktop

b)这里我们已经体会到了choco的强大之处,下载软件时不须进行任何多余的操作,一条命令行,就能实现你想得到的目的。

本文所用的一些工具都是最新版的软件,经测试VS2015和VS2017都是可以的。但更早的版本可能会出问题。

由于VS软件比较大,这个过程可能会有些漫长。

3、安装python

a)打开cmd(命令提示符工具),输入:

choco install -y python3

b)wireshark开发过程中,不涉及Python编程,Python仅用于wireshark的建立和编译等环节,没有出现在主要功能的开发中。

4、安装Perl

a)打开cmd(命令提示符工具),输入:

choco install -y strawberryperl

b)Perl这个工具在wireshark编译过程中具体是用来干什么的还没有搞明白,希望各路大神能在评论区讲解。

5、安装Git

a)打开cmd(命令提示符工具),输入:

choco install -y git

b)git是全球最好用的版本管理系统,在wireshark的编译过程中我们对Git的安装不做要求。但还是建议各位同仁安装Git,因为这将大大方便你的二次开发工作。

6、安装cmake

a)打开cmd(命令提示符工具),输入:

Choco install -y cmake

b)CMake是一个非常高级的编译配置工具,它主要作用于CMakeLists.txt文件,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。在wireshark源码中就有CMakeLists.txt文件。其实在大部分源码中都会有这个问文件。

7、安装Asciidoctor、Xsltproc和DocBook

a)打开cmd(命令提示符工具),输入:

choco install -y asciidoctorj xsltproc docbook-bundle

b)ascidoctor可以直接作为Ruby脚本运行,也可以通过Java包装器(ascidoctorj)运行。它与Xsltproc和DocBook结合使用,生成阅读文档和用户指南。

8、安装winflexbison

a)打开cmd(命令提示符工具),输入:

Choco install -y winflexbison3

b)这个可执行文件的具体功能我也不太明白,好像是跟编译有关,如果有大神看到的话,希望不吝赐教。

至此,关于wireshark编译的全部环境已配置完毕,这个过程可能会有些长,主要是因为很多工具都需要在境外网站下载,作者在下载的过程中也经常是以几k/s的速度进行,大家需要有点耐心。

大家也可以不适用chocolatey进行安装,而是在一些境内网站上下载相关的安装包进行安装,但一定要注意把安装好的可执行文件添加都环境变量的路径中。否则会出现"CAN NOT FIND ***"的问题。

(三)编译

1、下载wireshark源码

建议专门建立一个文件夹来存放wireshark源码和编译时山城的相关文件。比如我们在D盘新建文件夹Development。打开该文件夹。

关于wireshark源码的下载,在这里介绍两种方式:

(1)打开cmd(命令提示符工具),输入:

git clone [https://code.wireshark.org/review/wireshark](https://code.wireshark.org/review/wireshark)

这里存放的wireshark源码一定是最新版的wireshark源码,也是三点零以上版本的源码。

(2)打开网站 https://www.wireshark.org/download/src/all-versions/

这里有全部版本的wireshark源码,找到最新版的源码下载到Development文件夹下。

2、生成工程文件

打开Visual Studio 2019 → Visual Studio Tools → Developer Command Prompts。如图:

wireshark离线安装 wireshark3.0.0安装教程_命令提示符

输入命令:

- Mkdir D:\Development\wsbuild
- Cd D:\Development\wsbuild
- set WIRESHARK\_BASE\_DIR=D:\Development

这个wsbuild文件夹用来专门存放编译过程中生成的各种文件,这样可以跟源码文件不混淆,源码是源码,存放在wireshark文件夹中,生成文件是生成文件,存放在wsbuild文件夹中。以下的操作均是在Developer Command Prompts命令行窗口中打开wsbuild文件夹的前提下进行的。

如果你是64位操作系统,输入命令:

- Mkdir D:\Development\wireshark-win64-libs-3.0
- Set WIRESHARK\_LIB\_DIR= D:\Development\wireshark-win64-libs-3.0
- cmake -G "Visual Studio 16 2019" -A x64 ..\wireshark

如果你是32位操作系统,输入命令:

- Mkdir D:\Development\wireshark-win32-libs-3.0
- Set WIRESHARK\_LIB\_DIR= D:\Development\wireshark-win32-libs-3.0
- cmake -G "Visual Studio 16 2019" -A x32 ..\wireshark

注:这里你下载的是三点几的版本,就将相应的3.0改成三点几。

如果你是严格按照我说的步骤来的话,这时候理应会在对话框中得到输出:

- -- Configuring done
- -- Generating done
- -- Build files have been written to:C:/Development/wsbuild64

输入命令:

- msbuild /m /p:Configuration=RelWithDebInfo Wireshark.sln

四、结语

作者之所以写这篇文章,是因为这两周以来,饱受wireshark3.0编译之苦,以后自己再次编译wireshark时也好有个参考。

五、几点说明

如果你有疑问,尽量在评论区留言,我基本上每天都会打开CSDN手机APP,会跟各位同仁一同讨论您在此遇到的问题。评论区也是一个问题库,以后再有同仁遇到相同问题时,可以直接在参考评论区的相关意见,也算功德一件。

草草成章,不当之处,恳请各位指正。