1. 总体结构
wireshark的总体结构如下图所示。
2. 功能模块
模块名 | 功能 | 源码子目录 |
GTK/Qt | 处理所有的用户输入/输出(所有的窗口,对话框等等) | /ui |
Core | 主要的"粘合代码"(glue code),它把其他的块组合到一起 | / |
Epan (Ethereal Packet Analyzer) | 协议树(Protocol-Tree) - 保存捕获文件的协议信息数据 | /epan |
解析器(Dissectors) - 多种协议的解析器 | /epan/dissectors | |
插件(Plugins) - 一些用插件实现的协议解析器 | /plugins | |
显示过滤器(Display-Filters) - 显示过滤器引擎 | /epan/dfilter | |
Wiretap | wiretap库用于读/写libpcap格式或者其他文件格式的捕获文件 | /wiretap |
Capture | 抓包引擎相关接口 | / |
Dumpcap | 抓包引擎. 这是唯一需要提升权限来执行的部 | / |
WinPcap/libpcap | (不是Wireshark包的一部分) - 依赖于平台的包捕获库,包含捕获过滤器引擎.这就是我们为什么有不同的显示和捕获 两套过滤语法的原因 - 因为用了两种不同的过滤引擎 | - |