自己完成了
wireshark开发环境的搭建,主要参考资料是wireshark的官方developer-guide.pdf,网址:https://www.wireshark.org/docs/。
现把搭建过程中的主要步骤总结如下:
1、系统环境
win7x64 SP1
Microsoft Visual Studio 2015 Community Edition
Qt5.0.1
Python3.6.5
2、安装C编译器和SDK
选择的是vs2015社区版,下载地址:https://go.microsoft.com/fwlink/?LinkId=532606&clcid=0x409,这是一个在线安装版,本身很小,安装过程中会下载很多文件下来,如果是在虚拟机里安装,需要合理安排硬盘的大小,因为仅vs2015的安装大致需要12G的存储空间。
安装过程中,选择自定义安装(custom),在选择安装的组件时,开发手册建议仅安装“"Common Tools for Visual C++ 2015”,考虑到今后可能会使用C语言做开发,我同时选择了编程语言中的Visual C++,当然,我并不清楚不选择Visual C++组件是否可以进行C语言开发,安装过程很顺利,根据提示完成即可,安装过程时间很长。
3、安装Qt
wireshark是采用Qt+C的开发模式,其界面的设计是通过Qt的库完成的。Qt同样有付费版与免费版,免费版已足够开发使用,选择的是Qt Open Source版本,即免费版,安装过程很顺利,假设安装目录为:C:\Qt.
4、安装Cygwin
选择对应版本的Cygwin(x86 or 64)安装即可,部分组件是开发需要的,但默认是不安装的,需要手动添加,如下所示:
Devel/bison
Devel/flex
Devel/git
Interpreters/perl
Utils/patch? (may be Devel/patch instead)
Web/wget (not needed if using CMake)
Text/docbook-xml45
Interpreters/m4
Python下载地址:http://python.org/download/,安装过程很简单,按照提示,安装在默认目录即可,wireshark开发过程中,不涉及Python编程,Python仅用于wireshark的建立和编译等环节,没有出现在主要功能的开发中。
6、安装CMake
按照提示安装即可。
7、准备wireshark源码
下载wireshark源码:https://www.wireshark.org/#download,假设放在C:\Development\wireshark中。
8、设置环境变量
在cmd窗口中设置的环境变量,只能在当时的cmd窗口中临时有效,以下环境变量的设置,建议在“计算机”属性、环境变量中手动设置。
wireshark的编译过程,需要用到很多的外部链接库,这些库没有随源码一起打包,会在编译过程中下载到指定目录,环境变量WIRESHARK_LIB_DIR指明了这些库存放的目录,注意该变量的设置务必按照如下形式,具体原因在https://blog.csdn.net/dreamnow1201/article/details/80087174中有说明。
WIRESHARK_LIB_DIR=c:\wireshark-win64-libs-2.4
设置Qt的环境变量,以便编译过程中,可以找到Qt相关库的位置,变量值的设置与Qt的安装位置有关。
QT5_BASE_DIR=C:\Qt\5.9.1\msvc2015_64
设置wireshark的版本信息,以下变量值可随意设置,以标识自己编译得到的wireshark。
WIRESHARK_VERSION_EXTRA=v1.0.0.1
9、创建工程目录
新建一个文件夹C:\Development\wsbuild64,以存放生成的vs2015工程。
10、生成工程文件(build files)
下载得到的wireshark源码,并不是一个visual studio的solution工程,本步骤使用CMake工具将wireshark源码转换成一个vs解决方案的样子,以便在后续开发中可以直接用vs2015进行更改。
打开开始菜单中Visual Studio 2015目录中VS2015 x64 Native Tools Command Prompt,切换到第9步创建的工程目录中,针对64位的
操作系统,使用以下命令生成工程文件。
> cmake -DENABLE_CHM_GUIDES=on -G "Visual Studio 14 2015 Win64" ..\wireshark
生成过程会有一段时间,当出现以下信息时,表明生成成功了。
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Development/wsbuild64
11、生成wireshark可执行程序
打开开始菜单中Visual Studio 2015目录中VS2015 x64 Native Tools Command Prompt,切换到第9步创建的工程目录中,运行以下命令。
> msbuild /m /p:Configuration=RelWithDebInfo Wireshark.sln
编译过程会持续很久,编译结束后,便可找到C:\Development\wsbuild32\run\RelWithDebInfo\Wireshark.exe,运行该程序,在程序窗口help=》about中,可以看到第8步中环境变量WIRESHARK_VERSION_EXTRA的值,这便是自己编译得到的wireshark程序。
12、安装WinPcap
刚才编译得到的wireshark程序,还不能启动抓包;wireshark调用WinPcap中的相应库完成网络接口的识别和抓包,但是在上述环节中,WinPcap并不会自行安装,但WinPcap安装程序已在第10步时自动下载下来了,存放在当时设定的库目录中,双击安装即可,此时再运行C:\Development\wsbuild32\run\RelWithDebInfo\Wireshark.exe,便可识别出本地的网络接口,实现抓包。
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
- 【wireshark】开发环境搭建
1. 引言 本文相关内容可参考Wireshark开发指南第2章”Quick Setup” 要对wireshark代码进行修改,除了下文介绍的lua插件的方式以外,都需要对wirehshark源码进行编 ...
- Nordic nRF51/nRF52开发环境搭建
本文将详述Nordic nRF51系列(包括nRF51822/nRF51802/nRF51422等)和nRF52系列(包括nRF52832/nRF52810/nRF52840)开发环境搭建. 1. 强 ...
- ubuntu-10.10嵌入式开发环境搭建【转】
本文转载自:http://blog.csdn.net/zjhsucceed_329/article/details/8036781 版权声明:本文为博主原创文章,未经博主允许不得转载. ubuntu- ...
- SDN开发环境搭建以及Mininet编程
一.实验内容 搭建如下网络拓扑,并熟悉相关指令. 二.搭建开发环境 2.1 开发环境搭建 2.1.1下载ubuntu镜像文件 镜像下载地址 https://www.ubuntu.com/downl ...
- python开发环境搭建
虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...
- IntelliJ IDEA安装及jsp开发环境搭建
一.前言 现在.net国内市场不怎么好,公司整个.net组技术转型,就个人来说还是更喜欢.net,毕竟不是什么公司都像微软一样财大气粗开发出VS这样的宇宙级IDE供开发者使用,双击sln即可打开项目, ...
- Qt for Android开发环境搭建及测试过程记录
最近学习了Qt的QML编程技术,感觉相较于以前的QtGUI来说更方便一些,使用QML可以将界面与业务逻辑解耦,便于开发. QML支持跨平台,包括支持Android平台,因此可以使用Qt的QML进行An ...
- node.js之开发环境搭建
一.安装linux系统 (已安装linux可跳此步骤) 虚拟机推荐选择:VirtualBox 或者 Vmware (专业版永久激活码:5A02H-AU243-TZJ49-GTC7K-3C61N) 我这 ...
- TODO:小程序开发环境搭建
TODO:小程序开发环境搭建 1.第一步当然是要先注册小程序了 2.登录到小程序 a)完善小程序信息,如名称,图标,描述 3.绑定开发者 4.获取AppID,并设置服务器信息 5.下载并安装开发者工具 ...
随机推荐
- group()、start()、end()、span()
- Reporting services
“数据库引擎服务”可以承载报表服务器数据库.Reporting Services 需要SQL Server 2008 数据库引擎的本地或远程实例来承载报表服务器数据库.如果同时安装数据库引擎实例和 R ...
- CDOJ1324-卿学姐与公主 【线段树点更新】
http://acm.uestc.edu.cn/#/problem/show/1324 卿学姐与公主 Time Limit: 2000/1000MS (Java/Others) Memory ...
- 在html中打开PDF
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="990" heig ...
- ES6中变量的解析赋值的用途
变量的解构赋值用途很多. (1)交换变量的值 let x = 1; let y = 2; [x, y] = [y, x]; 上面代码交换变量x和y的值,这样的写法不仅简洁,而且易读,语义非常清晰. ( ...
- java的邮件系统实现
想要java中邮件发送和接收邮件,首先需要支持SMTP- pop/pop3/IMAP协议,发送的话还需要配置文件,来对程序提供相应的接口,只需要这两个文件,就可以实现邮件的接收发送, 协议为jar包封 ...
- HDOJ 1023 Train Problem II 卡特兰数
火车进站出站的问题满足卡特兰数...卡特兰数的相关知识如下: 卡特兰数又称卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列.由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名. ...
- PrototypePattern(23种设计模式之一)
设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒置原则 设计模式六大原则(4):接口隔离原则 设计模式六大原则(5):迪米特法则 设计模式六大 ...
- java中静态方法和非静态方法调用的一点小困扰,已解决。
public static void main(String[] args) { // TODO Auto-generated method stub SimpleGui1B gui=new Simp ...
- GCD 学习(二)dispatch_queue_create创建Dispatch Queue
摘录于: http://zhuyanfeng.com/archives/3042 dispatch_queue_create 用于创建用户线程队列.可以创建Serial/Concurrent Disp ...