zoukankan      html  css  js  c++  java
  • 【wireshark】Wireshark原理分析与二次开发系列

    1.版权声明

    本系列文章是本人花了很多心血写成,wireshark本是开源软件,本人也乐于技术知识和经验的分享,更是欣赏和推崇开源精神,因此任何看到本文的人都可以随意转载,但只有一个要求:

    在大段甚至全文引用本系列文章内容的情况下,需要保留本人网名(赵子清)和本博客地址的全部或一部分(http://www.cnblogs.com/zzqcn)。

    2.引言

    Wireshark是一款优秀的开源协议分析软件,多年来,全球无数开发者为Wireshark编写了数千种协议的解析插件(版本1.12.6已有1500余种),再加上强大易用的分析功能,使其几乎成为协议分析相关人员必备的工具之一。

    然而,并没有一种工具可以完全满足所有用户的需要,强大如Wireshark者,也是如此。尤其对于专业的协议分析、安全人员来说,在实际的工作中,往往需要分析某些私有协议的报文,或者用到官方wireshark没有提供的某些功能;而某些开发人员,则需要将Wireshark的报文解析功能移植到自己的应用场景中……这一切,都需要我们在理解Wireshark工作原理的基础上,对其进行二次开发。

    Wireshark的两大特点使二次开发比较容易:

    • 代码是开源的
    • 提供了插件机制(C/Lua)

    本系列文章,就是为了介绍如何进行wireshark二次开发而写的。

    3.主要内容与约定

    要对wireshark进行二次开发,必须先了解wireshark的基本工作原理,以及它提供的插件接口(Lua, C)。本系列文章首先介绍了wireshark的基本原理,之后介绍了Lua插件和C插件的编写,最后介绍如何对wireshark进行修改,加入定制化功能。

    对于一般的开发人员来说,学会如何编写wireshark插件就可以了,这种情况往往是需要写一个新协议的解析器,完成某种数据统计之类;而对于某些想要加入自定义功能的人来说,则必须对wireshark主要代码进行修改。

    本系列文章所有涉及到代码开发的地方都会给出示例和运行结果,且都在Windows和MacOSX上进行了验证,但是例子仅仅是例子,可能功能比较简单,代码格式也比较不规范。另外对于原理的描述,本人也正在学习过程中,有些原理描述可能浅尝辄止,甚至有些小错误,也是在所难免,敬请原谅和批评指正。

    4.文章索引

    【wireshark】总体结构

    【wireshark】抓包和文件格式支持

    【wireshark】协议解析

    【wireshark】开发环境搭建

    【wireshark】插件开发(一):概述

    【wireshark】插件开发(二):Lua插件开发介绍

    【wireshark】插件开发(三):Lua插件 Dissector

    【wireshark】插件开发(四):Lua插件Post-dissector和Listener

  • 相关阅读:
    [NOI2019] 回家路线
    [NOIP2016] 天天爱跑步
    [CF1187D] Subarray Sorting
    [THUPC2018] 弗雷兹的玩具商店
    [AGC006C] Rabbit Exercise
    [AGC005F] Many Easy Problems
    [51Nod2558] 选址
    [BZOJ3771] Triple
    [APIO2019] 奇怪装置
    [CTSC2018] 假面
  • 原文地址:https://www.cnblogs.com/zzqcn/p/4788777.html
Copyright © 2011-2022 走看看