【wireshark】开发环境搭建

1. 引言

本文相关内容可参考Wireshark开发指南第2章”Quick Setup”

要对wireshark代码进行修改,除了下文介绍的lua插件的方式以外,都需要对wirehshark源码进行编译(C外置解析插件不需要编译整个wireshark,都需要下载wireshark源码及需要的库),因此有必要学习如何搭建Wireshark开发环境。

在Linux和Apple OS X系统上编译wireshark较为简单,这里从略,只介绍Windows下编译wireshark 64位版本的方法和步骤。

下面开始按顺序分小节介绍编译步骤,内容以Wireshark 1.12.x和1.99.x版本为依据,其他较旧版本大同小异。

1. Windows

1.1 下载源码

源码压缩包:https://www.wireshark.org/download/src/all-versions/

Git(应该是主线):git clone https://code.wireshark.org/review/wireshark

1.2 准备Visual C++

要编译wireshark,开发电脑上应该安装了Visual Studio并包括了Visual C++,请至少安装Visual Studio 2010以减少不必要的麻烦。

1.3 安装Qt (Optional)

http://www.qt.io/download-open-source/#section-2下载与你的Visual Studio版本及处理器结构相对应的Qt版本。

注意,目前Qt官方安装包只对Visual Studio 2013提供了64bit支持,要使用Visual Studio 2010编译Wireshark,需要下载Qt opensource源码并自行编译为64二进制库。

1.4 准备PowerShell (Optional)

在Win7之前的旧系统上编译Wireshark新版本需要安装PowerShell。

1.5 安装Cygwin及相关包

到http://www.cygwin.com/下载Cygwin的安装程序,执行在线安装,后面将会看到,如果使用旧的Cygwin版本,可能会导致错误。安装时根据提示,选中以下包(*号为可选项):

  • Archive/unzip
  • *Archive/zip (only needed if you intend to build the U3 package)
  • Devel/bison
  • Devel/flex
  • *Devel/subversion (optional - see discussion about using Subversion below)
  • Interpreters/perl
  • Utils/patch
  • Web/wget

假设其安装到C:\Cygwin64。

1.6 安装Python

https://www.python.org/ 下载安装Python 2.7版本,假设安装到C:\Python27

1.7 准备编译命令行

到wireshark源码主目录建一个批处理文件,如setenv.bat,内容如下

@ECHO off

SET PATH=%PATH%:.
SET CYGWIN_BIN=C:\cygwin64\bin
SET QT5_BASE_DIR=D:\dev\qt-everywhere-opensource-src-5.3.2\qtbase
SET QT5_BIN=D:\dev\qt-everywhere-opensource-src-5.3.2\qtbase\bin
SET PATH=%PATH%;%CYGWIN_BIN%;%QT5_BIN%
SET WIRESHARK_LIB_DIR=D:\dev\Wireshark-win64-libs-1.12

SET VISUALSTUDIOVERSION=10.0
SET PLATFORM=X64
SET WIRESHARK_VERSION_EXTRA=-zzq-x64

ECHO 设置 Visual Studio environment...
CALL "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" amd64

title Command Prompt (MSVC++ 2010 64bit)

GOTO :eof

解释一下:

  • CYGWIN_BIN: cygwin可执行文件目录
  • QT_5XXX: Qt相关目录
  • VISUALSTUDIOVERSION: 编译所用的Visual Studio版本号
  • PLATFORM:目标平台,即将wireshark编译为32位还是64位
  • WIRESHARK_VERSION_EXTRA:附加版本信息,这个字符串会出现在编译好的Wireshark的“About Wireshark”对话框内的版本信息中
  • CALL那行:表示设定Visual C++ 2010 64位编译模式环境变量

如果不想编译Qt版本,则脚本改成如下:

@ECHO off

REM Batch script for compiling Wireshark on Windows.
REM I have disabled the Qt version build because it‘s meaningful
REM in 1.99.x only I think.

SET PATH=%PATH%:.
SET CYGWIN_BIN=C:\cygwin64\bin
REM SET QT5_BASE_DIR=D:\dev\qt-everywhere-opensource-src-5.3.2\qtbase
REM SET QT5_BIN=D:\dev\qt-everywhere-opensource-src-5.3.2\qtbase\bin
REM SET PATH=%PATH%;%CYGWIN_BIN%;%QT5_BIN%
SET PATH=%PATH%;%CYGWIN_BIN%
SET WIRESHARK_LIB_DIR=D:\dev\Wireshark-win64-libs-1.12

SET VISUALSTUDIOVERSION=10.0
SET PLATFORM=X64
SET WIRESHARK_VERSION_EXTRA=-zzq-x64

ECHO Setup Visual Studio environment...
CALL "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" amd64

title Command Prompt (MSVC++ 2010 64bit)

GOTO :eof

1.8 修改/config.nmake文件

打开wireshark源码主目录下的config.nmake文件,进行以下改动

  • 找到WIRESHARK_LIB_DIR=,将其设置为编译wireshark编译所依赖的第三方库文件的目录,见下文解释
  • 找到LOCAL_CFLAGS=,加入想要的编译器Flag

此文件中的设置项很多,可以根据自己的需要自行修改。

1.9 检查编译工具链是否就绪

打开wireshark源码目录中的setenv.bat,(打开后就不要关了,以后还要用),运行

nmake -f Makefile.nmake verify_tools

如下图所示:

如果没有错误提示,证明编译所需要的所有软件和工具都安装好了。

1.10 安装第三方依赖库

编译wireshark需要依赖不少第三方库,如下图所示

这些库可以用wireshark编译脚本自动下载,也可以手动下载。这些库的下载地址是:

http://anonsvn.wireshark.org/wireshark-$WIRESHARK_TARGET_PLATFORM-libs/tags/$DOWNLOAD_TAG/packages/

其中$WIRESHARK_TARGET_PLATFORM要替换成你所要编译的目标平台,如win32或win64,$DOWNLOAD_TAG要替换成一个日期字符串。比如对于我要编译1.12.0版本,这个地址是:

http://anonsvn.wireshark.org/wireshark-win64-libs/tags/2014-06-19/packages/

如果网络质量好,可以直接运行

nmake -f Makefile.nmake setup

来自动下载安装依赖库。

1.11 开始编译

先运行

nmake -f Makefile.nmake distclean

来清理旧文件,然后运行

namke -f Makefile.nmake all

开始编译。在intel i5-4590 CPU和8GB内存机器上,编译过程大约7分钟。

2. Mac OSX

以1.99.8为例。

  1. 下载源码并解压
  2. 进入主目录,运行./macosx-setup.sh,根据提示,安装所有所需依赖项
    如果不需要Qt支持,请注释掉macosx-setup.sh中的QT_VERSION=x.y.z这一行,且在第4步不要加入Qt相关的东西
  3. 设定3个环境变量
  4. export
    PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/Users/zzq/Qt5.5.0/5.5/clang_64/lib/pkgconfig:/usr/X11/lib/pkgconfig
  5. export
    CMAKE_PREFIX_PATH=:/Users/zzq/Qt5.5.0/5.5/clang_64/lib/cmake
  6. export
    PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Users/zzq/Qt5.5.0/5.5/clang_64/bin
  7. mkdir build; cd build
  8. cmake ..
  9. make –j 6 app_bundle
    如果wireshark 1.12.6,为make –j 6 all
  10. 编好的文件在build/run下面,也可以make install安装

使用cmake编译时,默认的编译选项由主目录下的CMakeList.txt中的

if( NOT CMAKE_BUILD_TYPE )
    set( CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
        "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
        FORCE)
endif()            

设定为RelWithDebInfo,如果想要开发调试,最好设成Debug。可以在这里设置,也可以在cmake命令行中设置:

cmake –DCMAKE_BUILD_TYPE=Debug.

另外,为了使Mac OSX下编译的GTK+版本的wireshark能运行,需要先启动X11(由Quartz安装,默认在Launchpad中的”其他“里),然后在shell里输入export DISPLAY=:0.0,再运行./wireshark就可以了。

3. 参考

Wireshark开发指南第2章”Quick Setup”

时间: 2024-11-05 18:41:58

【wireshark】开发环境搭建的相关文章

Java从0到全栈-Java语言概述与开发环境搭建

Java从0到全栈-Java语言概述与开发环境搭建 Java从0到全栈 Java语言概述 Java发展历史 Java之父-James Golsing 起源 1991年,SUN(Standford University Network)公司的James Golsing领导的工程师小组想要开发一种用于像电视机.微波炉.电话这样的消费类电子产品的小型计算机语言,该产品的特点是由于不同的厂商选择不同的CPU和操作系统,因此要求该语言不能和特定的体系结构绑定在一起,也就是跨平台的.最初将这个语言命名为Oa

Intellij IDEA 14.1.4 Scala开发环境搭建

主要内容 Intellij IDEA开发环境简介 Intellij IDEA Scala开发环境搭建 Intellij IDEA常见问题及解决方案 Intellij IDEA常用快捷键 1. Intellij IDEA开发环境简介 具体介绍请参见:http://baike.baidu.com/link?url=SBY93H3SPkmcmIOmZ8H60O1k4iVLgOmdqoKdGp9xHtU-Pbdsq2cpn75ZPZPWAJxeUlwr0ravraQzOckh777beq Intelli

javacard开发环境搭建 Eclipse+jcop+jcdk 配置完成的开发环境

javacard  开发环境搭建 Eclipse+jcop+jcdk  配置完成的开发环境,下载后安装jdk,并完成环境变量配置,即可开发javacard applet: 虽然有许多大神提供配置说明,但是配置很麻烦.提供一个配置好的环境给大家.如果好用,别忘了评价. 由于csdn上传限制,需要分别下载几个文件 http://download.csdn.net/detail/wyx100/7941899 http://download.csdn.net/detail/wyx100/7941669

Storm使用入门之本地开发环境搭建

本篇博文详细告诉你如何安装Storm的本地开发环境,总体分为两步,具体如下: 1.从官网上下载Storm的发布包,下载完成后将其解压,并将解压后的bin目录添加到环境变量(PATH)中,以方便后续执行Storm的相关命令 2.修改Storm的配置文件(storm.yaml),主要是按照实际情况更新配置文件中的集群信息,然后将修改后的配置文件添加到目录(~/.storm/)中,目的是为了后续能够远程启动和停止集群上的计算任务(即topology) 接下来,咱们来详细地介绍每一个操作步骤. 首先,何

《结对-贪吃蛇游戏-开发环境搭建过程》

贪吃蛇开发环境搭建 Python和pygame的安装过程 成员0:2015035107074-孔令辉 成员1:2015035107067-张旭 1.去官网下载python和pygame.(需注意自己电脑是32位的还是64位的,我的是64位的,就下了个64位的) 2.安装pythone 和 pygame. 3.安装完成后,查看环境变量配置情况:计算机->属性->高级系统设置->环境变量->系统变量->Path. 4.在命令提示符中输入:python,验证是否安装成功,若提示是无

微信开发学习总结(一)—微信开发环境搭建

目前移动App开发领域主要分为以下几种类型: 一.微信开发环境搭建 1.要有一个用来测试的公众号. 2.用来调式代码的开发环境 1.1.注册测试公众号 微信公众号分为服务号.订阅号.企业号,订阅号可以个人申请,服务号和企业号要有企业资质才可以. 我们所说的微信公众号开发指的是订阅号和服务号. 关于订阅号和服务号的区别,官方是这样解释的 服务号:主要偏向于服务交互(功能类似12315,114,银行,提供绑定信息,服务交互),每月可群发4条消息:服务号适用人群:媒体.企业.政府或其他组织. 订阅号:

vue.js开发环境搭建

1.安装node.js,忽略 2.基于node.js,利用淘宝npm镜像安装相关依赖 在cmd里直接输入:npm install -g cnpm –-registry=https://registry.npm.taobao.org,回车,等待安装... 3.安装全局vue,用于帮助搭建所需的模板框架 在cmd里, 1).输入:cnpm install -g vue-cli,回车,等待安装...2).输入:vue -V,回车,若出现vue信息说明表示成功 4.创建vue项目 在cmd里输入:vue

Hive项目开发环境搭建(Eclipse\MyEclipse + Maven)

写在前面的话 可详细参考,一定得去看 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Maven) 我这里,相信,能看此博客的朋友,想必是有一定基础的了.我前期写了大量的基础性博文.可以去补下基础. 步骤一:File  ->  New  -> Project   ->  Maven Project 步骤二:自行设置,待会创建的myHBase工程,放在哪个目录下. 步骤三: 步骤四:

Cordova+ionic 开发hybird App --- 开发环境搭建

Cordova 开发hybird App 开发环境搭建 一.一些基础概念: Ant : 简单说来可以这么理解,如果你用记事本写JAVA程序,然后在cmd里输入javac命令编译它,但是有一天你发现每次手动输入太麻烦而且都是重复劳动,于是你下决心改变这种状况,然后学会了把javac命令写到一个bat文件中,以后编译只需要单击运行即可:然后随着你敲的代码越来越多,而且有了JAVA project概念,于是你手动新建了很多文件夹比如src.bin.lib,你有写了一个bat文件来减少你的重复劳动:再后