1. 总体结构
wireshark的总体结构如下图所示。
2. 功能模块
模块名 |
功能 |
源码子目录 |
GTK/Qt |
处理所有的用户输入/输出(所有的窗口,对话框等等) |
/ui GTK: /ui/gtk Qt: /ui/qt |
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包的一部分) - 依赖于平台的包捕获库,包含捕获过滤器引擎.这就是我们为什么有不同的显示和捕获 两套过滤语法的原因 - 因为用了两种不同的过滤引擎 |
- |
3. 参考
Wireshark开发指南第6章"How wireshark works"
时间: 2024-11-06 03:05:49