自己完成了
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.下载并安装开发者工具 ...
随机推荐
- TextView中ellipsize属性
TextView中可以设置一个ellipsize属性,作用是当文字长度超过textview宽度时的显示方式: 例如,"encyclopedia"显示, 只是举例,以实际显示为准:) ...
- bzoj1951 组合数取模 中国剩余定理
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int a[4]={2,3,4679,35 ...
- Python 黑客 --- 001 UNIX口令破解机
Python 黑客 实战:UNIX口令破解机 使用的系统:Ubuntu 14.04 LTS Python语言版本:Python 2.7.10 V crypt 库是Python内置的库.在UNIX系统使 ...
- K-D TREE算法原理及实现
博客转载自:https://leileiluoluo.com/posts/kdtree-algorithm-and-implementation.html k-d tree即k-dimensional ...
- Bootstrap 组件之 Panel
一.简介 Panel 指面板.这里 有例子. 一个典型的面板的代码结构是这样的: .panel.panel-default .panel-heading .panel-title Title Text ...
- Java50道经典习题-程序35 最大最小交换
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组.分析: 例如输入6 4 8 3 9 7 交换后输出9 4 8 7 6 3 import java.util.Arrays; ...
- angular 分页
http://jsfiddle.net/SAWsA/11/# <html xmlns:ng="http://angularjs.org" ng-app lang=" ...
- sql 插入
今天处理了一个有关数据库表数据批量插入的问题.部分细节,自己之前没有遇到过.索性就整理下来,做个备忘录. 主要是将一个表的数据导入到另一张表中.这种插入方法,需注意两张表的对于字段的数据结构需要保持一 ...
- C++: I/O流详解(三)——串流
一.串流 串流类是 ios 中的派生类 C++的串流对象可以连接string对象或字符串 串流提取数据时对字符串按变量类型解释:插入数据时把类型 数据转换成字符串 串流I/O具有格式化功能 例: #i ...
- java java 内部类
java 内部类 一.java内部类: java内部类分为: 成员内部类.静态嵌套类.方法内部类.匿名内部类 . 内部类的共性: (1).内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.c ...