wireshark源码分析 是怎么完成协议识别的

代码流程

通过process_packet_single_pass处理单个数据包,每层数据包都会使用decode_udp(tcp)_ports识别协议,这里面提供端口和特征识别;

端口识别:dissector_try_uint_new

在接口内通过find_uint_dtbl_entry

如果是一个HTTP数据包,在这里就会通过接口获取key为80的对象。

特征识别:dissector_try_heuristic

关于特征识别,wireshark是不太注重的,因为其使用场景多为协议分析,读取文件的形式。对于特征流量都会通过协议首选项随时配置。

在接口里面

那么怎么让协议支持特征识别,才是话题里关心的。在wireshark中,他所有的协议相关操作,都是通过一个全局变量处理的,变量的内容就是一个关于接口描述和接口回调的成员。所有协议都在里面,我们以http示例。

这个文件的位置在

build/epan/dissectors/dissectors.c

变量名:注册解析处理回调

dissector_reg_handoff

其中http特征位置在

proto_reg_handoff_message_http接口,看一下里面做了什么

很简单,对比其他工具特征识别逻辑(比如suricata的hyperscan),wireshark针对特征识别真的很简单。。。。。。。

相关推荐
Uncertainty!!2 小时前
无法打开校园网认证网页问题
网络
returnthem2 小时前
kubernetes网络
网络·容器·kubernetes
网管NO.12 小时前
OpenClaw 完全卸载指南(Windows + WSL2)
网络·人工智能·windows·ubuntu
以太浮标2 小时前
华为eNSP模拟器综合实验之- NATServer 实践配置解析
网络·网络协议·华为·智能路由器·信息与通信
M1nat0_3 小时前
Linux基础 Ext 文件系统:从磁盘硬件到目录路径的全链路解析
linux·服务器·网络·数据库
IT WorryFree3 小时前
LLD 自动发现场景 → 对应使用哪种探测方式(SNMP/HTTP/Agent)最优
网络·网络协议·http
AI服务老曹3 小时前
打破品牌壁垒:基于 GB28181 与 RTSP 的企业级视频融合网关架构设计
网络·音视频
上海云盾安全满满3 小时前
游戏被攻击了要如何选择防护,接高防服务器还是游戏盾
服务器·网络·游戏
谪星·阿凯3 小时前
业务逻辑漏洞从入门到实战博客
网络·安全·web安全
淼淼爱喝水3 小时前
华为 防火墙直连互通配置:实现双防火墙 Ping 通
服务器·网络·华为