wireshark开发——包解析介绍
2025-03-1151
1.包解析原理
每一个解析器都将负责解码协议部分,并且不会解析其他被封装的协议。
每一次解析都始于解析器框架,解析器框架解析抓包文件的详细包内容。解析器框架会将数据传递到最底层的数据解析器。比如解析以太网头部的信息的以太网解析器。装载的数据会随后传递给下一个解析器(比如IP解析器)等等。在每一个阶段包的内容细节将不断被解码及展示。
解析功能可被实现为两种可能的形式。
一种方式,是在主进程中编译进来一个解析器模块,这意味着这个解析器模块必须始终是可用的。
另外一种方式,是创建一个插件(一个共享库或者DLL),插件能让自身注册进来,并且能执行包解析。
内置解析器和插件式解析器之间的差异非常小。在windows平台上,我们可以通过ABI有限地访问一些功能,这些功能由函数WS_DLL_PUBLIC所暴露。
必须提到的一个事情是,插件式解析器的重新构建过程会比内置解析器要短得多。因此,当我们还不太熟悉的时候,以插件方式开始解析器的开发会简单和简洁很多,同时我们完成的代码也会更有价值。
2.解析器实现说明doc/包含了解析器的实现细节,我们可以仔细阅读,以加强把握。