wireshark2.6版本源码目录概览

基于github上面wireshark2.6版本源码整体目录结构分析如下。

Wireshark在开发者手册中第六章,这里,给出的总体结构图如下:
这里写图片描述

GUI部分表示的是所有Wireshark 界面相关内容,对应的源码目录为ui/qt,即wireshark界面是基于qt来实现的。UI相关内容不是我们源码分析的重点,知道其作用即可。

Core部分的主要作用是将所有其他的模块粘合到一起,从图中得知Core将GUI,Epan,Capture,Wiretap进行结合。对应的代码放在根目录下面。

Epan是Enhanced Packet ANalyzer缩与,即报文解码分析引擎,对应源码的epan目录。Epan包含如下的几个模块:
1,Protocol Tree 即协议树模块,表示的是单片报文的解码信息。
2,Dissector解析器模块,即表示wireshark所支持的各种协议的解码功能,对应的源码目录为epan/dissector,像常见的tcp,http等协议的解码功能均在此目录下。
3,Displayer-Filters 即显示过滤器模块,主要实现是wireshark过滤器的功能,对应的目录为epan/dfilter目录
4,Dissector-Plugins目录现在移到了根目录的plugins下。

Wiretap模块连接了Capture和Hardisk模块,表示的是读取捕获报文以及向硬盘写入不同格式报文,(包括pcap,pcapng等基本格式)的功能,对应代码目录为wiretap以及writecap。

Plugins为插件目录,主要实现了一些补充解析器的功能,作为一个单独模块存在这个目录,方便一些解析器的添加。可以在plugins/epan找到这些补充解析器。

Capture,Dumpcap,Winpcap/libpcap这三个模块表示的是捕获报文相关,winpcap和libpcap表示的是一个第三方的用于抓取网卡(适配各种网卡类型)数据的功能库,wireshark使用它们是为了适配不同机器的差异。这些库提供了一套捕获过滤器功能,与wireshark的显示过滤器不同。Dumpcap是捕获报文引擎,是调用这些三方库来实现报文捕获功能。Capture是Dumpcap捕获引擎提供的对于其他模块的接口,例如wiretap就是通过capture来获取数据的。这三个模块相关代码也是存在于源码的根目录下。

Image表示工程中用到的图片目录.。 Cmake是编译相关目录。

Doc,docbook,help等目录是各种说明文件。例如doc/tshark.pod的内容在Linux下面可以通过man tshark命令进行查看。Dockbook/wsug src/tshark-h.txt可以通过tshark h命令进行查看。

当然还有很多其他的目录同样提供者wireshark 其他方面的一些功能,但是wireshark的主要功能是协议加密功能,相应的源码分析主要集中在根目录,epan,及wiretap以及writecap等。

本文为CSDN村中少年原创文章,转载记得加上小尾巴偶,博主链接这里

猜你喜欢

转载自blog.csdn.net/javajiawei/article/details/81145287