由于要做码流处理,最近把功能强大开源的wireshark当成了“捷径”,想从其中摘取解析引擎部分。这就开始了全部源码的编译、分析过程。大概用了两周,基本捋清了它的运行机制。但到摘取代码的时候发现,难度好大,源文件众多,条件编译众多,依赖库众多。。。现将2周分析源码的“成果”贴出来(更多的是想与同样分析wireshark的网友一起探讨,经验分享),有不恰当及错误的地方,欢迎各位大神指正,如果能帮助到其他人则是更好,现以流程图方式展现。注意:
此流程图是在指定抓取固定包数的模式下进行的(因为其源码条件抓包分为文件及包数的方式)。命令格式如:./tshark -c 200 并且,流程图中未详尽列出从Frame到应用层协议(HTTP)解析的层层调用关系,这一步可以在相关应用层协议的解析器函数打上断点(例如HTTP:b dissect_tcp_http),gdb模式下直接bt,看栈信息即可。
1