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针对特征识别真的很简单。。。。。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/23213.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据可视化之常用图表热力图

1.什么是热力图? 热力图,是一种通过对色块着色来显示数据的统计图表。 绘图时,需指定颜色映射的规则。 例如,较大的值由较深的颜色表示,较小的值由较浅的颜色表示;较大的值由偏暖的颜色表示,…

【解释说明下java反射机制?】

文章目录 概要核心概念反射的主要用途反射的基本操作注意事项示例总结 概要 Java反射(Reflection)是Java语言提供的一种强大的工具,它允许程序在运行时进行自我检查,并能对类的内部信息(如成员变量、构造方法、成员方…

【摄影测量02】什么是内外方位参数?坐标系旋转变换?

【摄影测量02】什么是内外方位参数?坐标系旋转变换? 文章目录 【摄影测量02】什么是内外方位参数?坐标系旋转变换?引言1 内方位元素与外方位元素1.1 内方位元素1.2 外方位元素 2 旋转矩阵的概念与应用2.1 旋转矩阵的定义2.2 坐标变…

chatglm3-6b小试

原本想在VMware中装个unbutu,再搞chatglm,但经过调研发现业内都是采用双系统来搞chat的开发。于是只好用rufus制作了一个ubuntu22.04的系统盘,你需要准备8G,因为制作好镜像后是7个多G。安装这里就不说了。 1 ubuntu环境 安装好ubu…

升级HarmonyOS 4.2,开启健康生活篇章

夏日来临,华为智能手表携 HarmonyOS 4.2 版本邀您体验,它不仅可以作为时尚单品搭配夏日绚丽服饰,还能充当你的健康管家,从而更了解自己的身体,开启智能健康生活篇章。 高血糖风险评估优化,健康监测更精准 …

在SpringBoot项目中应用RedisCache功能

1.application.yaml中添加cache配置 spring:cache:type: redisredis:time-to-live: 72000000key-prefix: redis:cache:use-key-prefix: truecache-null-values: true 2.封装RedisCache配置类 EnableConfigurationProperties(CacheProperties.class) Configuration EnableCac…

Spring注解驱动开发与第三方整合实战指南

注解开发定义Bean对象 Spring框架提供了丰富的注解来简化XML配置,其中Component是最基础的注解,它标志着一个Java类作为Spring中的Bean。针对不同的层,Spring还提供了特定的衍生注解,如Controller用于Web层,Service用于…

海南聚广众达电子商务咨询有限公司靠谱吗?

在数字经济的浪潮中,抖音电商作为新兴业态,正以其独特的魅力和强大的势能,改变着传统商业模式,引领着新一轮的消费潮流。海南聚广众达电子商务咨询有限公司,作为抖音电商服务领域的佼佼者,凭借其专业的团队…

Scalable Membership Inference Attacks via Quantile Regression

我们使用以下六个分类标准: 动机: 隐私问题:许多研究背后的主要动机是对机器学习模型相关的隐私风险日益增长的担忧。例如,Shokri等人(2017)和Carlini等人(2022)专注于开发和改进成员推理攻击,以评估模型对隐私泄露的脆弱性。模型理解:一些研究深入了解机器学习模型的固有…

重学java 65.IO流 缓冲流

I am not afraid tomorrow for I have seen yesterday and love today —— 24.6.5 一、字节缓冲流 1.字节缓冲流的意义 之前所写的FileOutputstream、FileInputstream、FileReader、Filewriter这都叫做基本流,其中FileInputstream和FieOutputstream的读写方法都是本地方法(方…

局域网怎么设置路由器?

在搭建局域网的过程中,设置路由器是非常重要的一步。正确地设置路由器可以确保局域网的正常运行,并且可以更好地保护网络安全。以下是一些关于如何设置路由器的指南。 第一步:获取路由器 您需要获得一台适合您需求的路由器设备。选择一款性能…

idea如何根据路径快速在项目中快速打卡该页面

在idea项目中使用快捷键shift根据路径快速找到该文件并打卡 双击shift(连续按两下shift) -粘贴文件路径-鼠标左键点击选中跳转的路径 自动进入该路径页面 例如:我的实例路径为src/views/user/govType.vue 输入src/views/user/govType或加vue后缀src/views/user/go…

回炉重造java----JUC(第二天)

Monitor---监视器/管程 对象头: 操作系统提供的Monitor对象 Synchronized底层实现原理: ①锁对象在加了synchronized之后,对象头中的Mark Word中就存了一个Monitor的地址指针。 ②当一个线程获取到锁之后,Monitor中的Owner属性指…

Leetcode3168. 候诊室中的最少椅子数

Every day a Leetcode 题目来源:3168. 候诊室中的最少椅子数 解法1:模拟 代码: /** lc appleetcode.cn id3168 langcpp** [3168] 候诊室中的最少椅子数*/// lc codestart class Solution { public:int minimumChairs(string s){int chair…

【踩坑记录】Elasticsearch查询:circuit_breaking_exception异常解决方案

项目场景: springboot中使用ES7查询一个月内的数据量趋势时出错。在开发线上正常,演示线时出现异常 问题描述 项目在演示线环境的时候,出现查询异常 异常信息如下: org.elasticsearch.ElasticsearchStatusException: Elastics…

Web3设计风格和APP设计风格

Web3设计风格和传统APP设计风格在视觉和交互设计上有一些显著的区别。这些差异主要源于Web3技术和理念的独特性,以及它们在用户体验和界面设计中的具体应用。以下是Web3设计风格与传统APP设计风格的主要区别。北京木奇移动技术有限公司,专业的软件外包开…

Android 13 亮度调节代码分析

frameworks\base\packages\SystemUI\res\layout\quick_settings_brightness_dialog.xml 进度条控件 <com.android.systemui.settings.brightness.BrightnessSliderViewxmlns:android"http://schemas.android.com/apk/res/android"android:id"id/brightness…

【PL理论】(5) F#:递归类型 | Immutability 特性(F#中值一旦定义就不会改变)

&#x1f4ad; 写在前面&#xff1a;本文旨在探讨不可变数据结构在 F# 编程中的应用&#xff0c;特别是如何利用递归记录类型来表示和操作数值表达式。通过定义存储整数的二叉树和数值表达式的类型&#xff0c;我们将展示不可变性如何简化程序的理解和维护。文章将对比 F# 与命…

Android音频API介绍

Android系统提供了四个层面的音频API&#xff1a; Java层MediaRecorder&MediaPlayer系列&#xff1b;Java层AudioTrack&AudioRecorder系列&#xff1b;Jni层opensles&#xff1b;JNI层AAudio&#xff08;Android O引入&#xff09; 下面分别介绍这些API的使用及特点。…

opencv用自适应直方图均衡化函数cv2.createCLAHE()提高对比度

来自WeTab AI Pro cv2.createCLAHE() 是 OpenCV 中的一个函数&#xff0c;用于创建 CLAHE&#xff08;Contrast Limited Adaptive Histogram Equalization&#xff0c;对比度受限自适应直方图均衡化&#xff09;对象。CLAHE 是一种增强图像局部对比度的技术&#xff0c;通过限…