最近公司在做一个项目,要分析多个pcap文件,需要调用wireshark来做分析,所以要熟悉wireshark源码,wireshark功能如此强大,源代码看起来相当费力,为了尽快熟悉wireahrk,最好的办法就是能调试wireshark。接下来分别介绍(1).windows下如何编译wireshark(2).wireshark源码中部分函数分析及使用

一.windows下如何编译wireshark源码

1.下载安装cygwin,可以直接选择网上的安装包下载,因为在线下载会很慢的

2.下载安装python ,本人使用python26版本

3.下载wirshark源码,下载地址:https://www.wireshark.org/download/src/all-versions/

从1.10版本往下才会有vs的工程文件存在

4.打开wireshark源码目录,找到config.nmake,修改如下几项:

1.WIRESHARK_LIBS,设置编译WireShark所需的库所在的目录,默认即可。

2.PROGRAM_FILES,设置本机程序安装目录,默认即可

3.MSVC_VARIANT,因为我使用VS2008编译,所以这里将值为MSVC2010的那一行前的#去掉,其余MSVC_VARIANT项行首全部加上#注释掉

4..CYGWIN_PATH,将其设置为Cygwin的bin目录,例如D:\source\cygwin\cygwin\cygwin\bin

5.PYTHON及其后的PATH,将其修改为本机python.exe和其安装目录的位置,例如C:\Python27\Python.exe。(也可采用默认)

6.MSVCR_DLL,如果VS安装在D盘,请在这里相应的地方用绝对路径表示,而不要去修改前面的PROGRAM_FILES,否则会出现意想不到的错误

例:MSVCR_DLL=D:\softinstall\MicrosoftVisual Studio 10.0\VC\redist\x64\Microsoft.VC100.CRT\*.*

5.编译wireshark

打开vs2010的cmd工具,找到D:\softinstall\Microsoft Visual Studio10.0\VC\bin\下的vcvars32.bat,拖到cmd里的,再切换到wireshark源码目录,

6.依次输入如下指令:

1.nmake -f Makefile.nmake verify_tools

2.nmake -f Makefile.nmake setup

此命令会在线下载一些安装包,存放到c根目录下

3.nmake -f Makefile.nmake distclean

4.nmake -f Makefile.nmake all

此命令可能会第一次出错,再进行一次编译就可以了

二.wireshark部分源码分析

1.编译成功后,会在wireshark目录下wireshark-gtk2目录下产生一堆lib、dll,这些库非常重要。下面的开发将会使用这些库。这里也可以进行调试wireshark了,调试看的会更容易明白wireshark是如何工作的了。

2.如何想将wireshark源码添加到vs中,方便单步调试,这里要说明一下,从wireshark1.10.9版本以前,才会有vs的工程文件,此时需要自己建立一个解决方案,将工程文件添加到该解决方案中即可

3.静态引用编译成功产生的各lib,代码如下:

这里要说明的是,wireshark是需要glib库的,要想加载wireshark库首先要能正常加载glib库,而glib库为linux常用的C语言库,需要先

移植到windows下,这个很容易,网上也是可以找到相关资源的,这里不讲述了

4.此时就可以进行wireshark二次开发了,先大概看明白wireshark,需要用到wireshark哪部分就加载哪部分,其实因为我们不需要界面部分,其实用到的还是tshark源码部分,像打开pcap文件、读取pcap文件,合并pcap文件,解析pcap文件,还有很多很多可以做,这些都比较容易的,这里不再多说了

本人前段时间还将tshark源码成功移植到了android平台,实现了手机上抓包分析文件,有时间分享给大家,这个目前市面上也是没有的

wireshark二次开发相关推荐

  1. PHP漏洞利用工具开发,PHPcms二次开发,PHPcms,DEDEcms简单代码审计

    PHP工具开发 文章目录 PHP工具开发 PHP小马 一句话木马 PHP大马分析 实现大马后门 编写大马 PHP的cms二次开发 PHP常见CMS的漏洞分析 PHPstorm调试模式 PHPCMSv9 ...

  2. 【ReactiveX】基于Golang pmlpml/RxGo程序包的二次开发

    基于Golang pmlpml/RxGo程序包的二次开发[阅读时间:约20分钟] 一.ReactiveX & RxGo介绍 1.ReactiveX 2.RxGo 二.系统环境&项目介绍 ...

  3. 20150411--Dede二次开发-01

    20150411--Dede二次开发-01 目录 一.目前市场流行的电子商城系统 1 二.ecshop的介绍 1 三.安装 2 四.echsop 的目录结构 5 五.分析ecshop里面程序的架构 5 ...

  4. android系统二次开发,Andorid系统二次开发界面

    Andorid系统二次开发界面 给大家介绍完外观,下面我们一起再来看下魅族MX的系统界面.本次魅族MX仍然采用的是Andorid操作系统,并且加入了二次开发界面.UI界面整体上保持了和M9的特色,不过 ...

  5. wordpress php教程 pdf,wordpress二次开发全能教程.pdf

    wordpress 二次开发全能教程 1. 根据分类来制定导航条 A. 修改页面 header.php! <?php wp_list_categories('title_li='); ?> ...

  6. Saiku二次开发获取源代码在本地编译(五)

    关于Saiku的二次开发,在本地编译然后启动自己编译好的Saiku服务 Saiku是开源的,从github上能下载源代码,本例中的saiku源码也是从github上找的,然后自己改了一些pom.xml ...

  7. catia三维轴承_浅谈基于CATIA二次开发的单排四点接触球轴承三维设计论文

    浅谈基于CATIA二次开发的单排四点接触球轴承三维设计论文 一.概述 单排四点接触球转盘轴承是一种能够同时承受较大轴向负荷.径向负荷和倾覆力矩等综合载荷,集支承.旋转.传动.固定等多种功能于一身的特殊 ...

  8. 【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动

    SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    服务接口的作用 围绕着设备驱动模块采集的数据,根据需求提供多种应用服务,例如:数据上传服务.数 ...

  9. 二次开发photoshop_Photoshop 101:Web开发人员简介

    二次开发photoshop 介绍 (Introduction) Often, when working as web developer, we need to integrate templates ...

最新文章

  1. R可视化包ggplot2设置透明背景实战
  2. python time.time()计算代码运行时间
  3. 管理费用负数报不了怎么办_我的心脏血管堵了很久,大夫说打不开了,我可怎么办?...
  4. Xcode 9 新建的工程如何支持 iOS 8
  5. ASP.NET Core:CMD命令行+记事本 创建Console程序和Web Application
  6. android高级编程实操期末机试试题,《网络高级编程》201001机考试题A
  7. php多线程模拟请求,浅谈php使用curl模拟多线程发送请求
  8. 程序员面试金典 - 面试题 01.09. 字符串轮转
  9. php v9验证码错误,PHPCMS v9后台登陆提示验证码错误的解决方法
  10. 关于Spring的几个问题
  11. java 分割数据_java 分割csv数据的实例详解
  12. oracle中的数据对象
  13. 2018北京ICPC H. Approximate Matching(AC自动机+DP)
  14. Java Interview Questions (1)
  15. 怎么接微信公众号人工服务器,怎么设置微信公众号接入人工客服?
  16. 快速记住《计算机文化基础》海量题法
  17. 如何修改作为背景图片的svg颜色
  18. Python调用PyMol
  19. 飞象星球落地重庆云阳86所学校,县乡4万学生迎来素质课堂
  20. Charles工具使用

热门文章

  1. SAP-QM 检验批状态汇总
  2. 介绍一个手机端快闪视频制作工具
  3. iframe 报错Mixed Content: The page at ‘xxx‘. This request has been blocked; the content must be served
  4. 转正小结计算机,计算机实习生转正自我鉴定
  5. how2heap2.31学习(2)
  6. 【Android 开发】: Android客户端与服务端之间使用JSON交互数据。
  7. 如何让checkbox复选框只能单选
  8. 心理测评软件语音导读播报功能:2022年率先实现的一个功能
  9. word 通过宏选中所有表格
  10. 制作Ubuntu系统ISO镜像(制作启动盘)