自己完成了
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.下载并安装开发者工具 ...
随机推荐
- css 层叠式样式表(2)
一,样式表分类 (1)内联样式. --优先级最高,代码重复使用最差. (当特殊的样式需要应用到单独某个元素时,可以使用. 直接在相关的标签中使用样式属性.样式属性可以包含任何 CSS 属性.) (2) ...
- 设置 PyCharm 软件中 Terminal 窗口 中启动的 python 交互命令的版本
设置 PyCharm 软件中 Terminal 窗口 中启动的 python 交互命令的版本 python2 和 python3 有很大的不同,使用python2 编写的程序,如果使用python3 ...
- ZROI2018提高day1t1
传送门 分析 在考场上我通过画图发现了对于n个点肯定用一个六边形围起来最优(假装四边形是特殊的六边形),我们发现可以将这个六边形分成两个梯形(梯形的高可以为0),然后我们便枚举两个梯形共同的底边和它们 ...
- kaggle Data Leakage
What is Data Leakage¶ Data leakage is one of the most important issues for a data scientist to under ...
- C++面试笔记--继承和接口
整个C++程序设计全面围绕面向对象的方式进行.类的继承特性是C++的一个非常重要的机制.继承特性可以使一个新类获得其父类的操作和数据结构,程序员只需在新类中增加原有类没有的成分. 在面试过程中,各大企 ...
- python基本概念——标识符
标识符是用来标识某样东西的名字.在命名标识符的时候,你要遵循这些规则: 标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘ _ ’). 标识符名称的其他部分可以由字母(大写或小写) ...
- 《Maven实战》笔记-8-构建部署Web项目
一.Web项目结构 1.显式指定Web项目打包方式为war: 2.默认目录 根据“约定大于配置”的规则,Web项目的类及资源文件默认位置为src/main/java和src/main/reso ...
- eclise远程调试
配置很简单,如下: 1. tomcat在bin/catalina.sh中添加如下:declare -x CATALINA_OPTS="-server -Xdebug -Xnoagent -D ...
- 工作中用的cobbler命令行
在使用cobbler服务器,从pxe启动虚机的时候,经常用到的cobbler命令行 1.查看注册信息 cobbler system report --name=test25 2.注册信息 cobble ...
- Pandas——修改DataFrame列名
#生成一个数据框 import pandas as pd a = pd.DataFrame({'a':[1,2,3], 'b':[4,5,6], 'c':[7,8,9]}) #直接修改:缺点必须写明每 ...