当前位置: 首页 > news >正文

车联网UDS诊断:0x22,0x2E,0x11,0x2F,0x31,0x28请求数据分析实战.

车联网UDS诊断:0x22,0x2E,0x11,0x2F,0x31,0x28请求数据分析实战.

UDS(统一诊断服务)是汽车电子控制单元的标准诊断协议,相当于车辆与诊断仪之间的“通用语言”,用于读取故障码、清除故障、刷写软件(OTA更新)等。正因其功能强大,它也成为车联网安全的核心风险点,黑客一旦绕过其“安全访问”机制恶意利用UDS,就可实现远程控制车辆、植入恶意软件等严重攻击,因此保护UDS是保障汽车网络安全的重中之重。


目录:

常见请求数据分析方法-总体概况:

(1)22服务:按标识符读取数据.

(2)2E服务: 按标识符写入数据.

(3)11服务: ECU重置.

(4)2F服务:按标识符的输入输出控制.

(5)31服务:例程控制.

(6)28服务:通讯控制.


常见请求数据分析方法-总体概况:

一般诊断都是对:各ECU需对22,2E,11,2F,31,28,等服务进行测试,看看是否做了27服务的安全访问.

响应结果:22读取服务是积极响应的。其他都是需要消极响应(一般都是33或者31)

消极响应码(否定响应码)背一下:


(1)22服务:按标识符读取数据.

一般都是:发送诊断指令22+DID,响应结果积极响应.

什么是DID:数据标识符的缩写。在 UDS 诊断协议中,它用来唯一标识一个你想要读取或写入的特定数据项(例如:VIN码、ECU零件号、软件版本号等)【你可以把 DID 想象成一个存储单元的“地址”,这个地址里存放着你需要的数据】

22+DID(十六进制)常见名称标准格式长度(固定)描述

22 F1 90

ECU 名称

3

一个用于标识 ECU 类型或功能的字符串。例如,“发动机控制模块”、“BCM”、“网关”等。这是识别 ECU 身份的重要信息


(2)2E服务: 按标识符写入数据.

一般都是:发送诊断指令2E+DID,响应结果消极响应【33】。需要解除27安全访问服务后才能积极响应.(发送一般是下面这些.)

2E+DID(十六进制)常见名称标准格式最少长度 描述
2E F1 90 00ECU 标识符4ECU名称标识符清零
2E F1 91 00应用软件版本号4清除应用软件版本
2E F1 92 00标定数据版本号4清除标定数据版本
2E F1 93 00引导程序版本号4清除指纹
2E F1 94 00当前激活的软件集4重置激活状态
2E F1 95 00软件/标定数据指纹4将校验和/哈希值清零

2E+DID(十六进制)常见名称标准格式最少长度 描述
2E F1 90 FF FF FF FF FFECU 标识符4ECU名称标识符清零
2E F1 91 FF FF FF FF FF应用软件版本号4强制将存储应用软件版本的物理区域擦除
2E F1 92 FF FF FF FF FF标定数据版本号4强制将存储标定数据版本的物理区域擦除
2E F1 93 FF FF FF FF FF引导程序版本号4强制将存储Bootloader版本的物理区域擦除风险极高
2E F1 94 FF FF FF FF FF当前激活的软件集4将激活状态存储区擦除
2E F1 95 FF FF FF FF FF软件/标定数据指纹4强制将存储校验和/哈希值的区域


(3)11服务: ECU重置.

一般都是:发送诊断指令11 01,硬重置,消极响应,NRC:33,需要通过27安全访问服务后才可执行;

指令常见名称

标准格式长度(固定)

描述
11 01硬复位2模拟ECU电源完全断开再重新上电的过程。这是最彻底、最强大的复位方式。
11 02钥匙开关复位2模拟车辆钥匙开关从“OFF”到“ON”的循环
11 03软复位2仅复位ECU的应用程序,而不关闭基础驱动和通信。类似于电脑的“重启”而非“关机”。
11 04启动快速断电2此类型较为特殊。它不是立即执行复位,而是允许ECU在后续电源被切断时,可以执行一个快速、安全的关闭流程
11 05禁用快速断电211 04的逆操作。让ECU退出“准备快速断电”的状态。


(4)2F服务:按标识符的输入输出控制.

概况:2F服务:它相当于诊断仪的“万能遥控器”功能。(比如:你用万能遥控器直接控制电视机的音响音量开关,让声音静音。)

方面

解释

目的

让诊断仪能够临时覆盖ECU的正常逻辑,直接测试或控制ECU的输入和输出,用于生产测试、故障诊断和功能验证

与控制DTC的区别

0x2F主动控制ECU的行为(如“点亮这个灯”),而读DTC是被动获取ECU记录的历史故障信息

风险

高风险操作。错误控制可能导致车辆功能异常(如行驶中误关燃油泵)。必须在扩展会话下并通过安全访问解锁后才可使用。

与0x22/0x2E服务的区别

0x22/0x2E读/写数据)是操作ECU的内存数据(如版本号、VIN码)。而 0x2F是直接控制ECU物理输入输出信号和执行器

一般都是:发送诊断指令2F FF 00,消极响应,NRC:33,需要通过27安全访问服务后才可执行;

2F+DID(十六进制)常见名称

标准格式长度

(至少4字节)

描述
2F FF 00归还控制权3当 0x2F服务的控制参数(第3个字节)为 00(表示“归还控制权”)时,该请求报文必须在此结束,后面不能再跟任何数据字节。
2F FF 01 03 01如果意图是控制 FF 01这个对象5将其状态设置为 01,即“开启”
2F FF 01 03 00如果意图是控制 FF 01这个对象5(将其状态设置为 00,即“关闭”)


(5)31服务:例程控制.

概况:31服务:诊断仪命令ECU执行一个预先封装好的、复杂的“诊断程序”或“功能脚本”

一个简单的比喻:

ECU:就像一个拥有多种功能的智能机器人

例程:就是机器人内部预装的、一个个功能固定的“程序包”(比如“自检程序包”、“校准程序包”、“复位程序包”)。••

例程控制服务(0x31):就是你手中的一个遥控器,上面有 “开始”“停止”“查询结果”​ 三个按钮。

例程控制的过程:你按下遥控器的“开始”按钮,并指定要运行“自检程序包”,机器人就会自动执行一套复杂的自检动作,最后告诉你结果。


一般都是:发送诊断指令31 01 00 01,消极响应,NRC:33,需要通过27安全访问服务后才可执行;

31+DID(十六进制)常见名称

标准格式长度

(至少4字节)

描述
31 01 00 01启动例程4这是一条启动例程的请求。它命令ECU开始执行其内部预定义的、编号为 0001的特定功能例程。该例程的具体功能(如内存擦除、自检、复位等)由汽车制造商定义,需查阅具体诊断规范方能确定。
31 02 00 01停止例程4这是一条停止例程的请求。它命令ECU停止执行其内部编号为 0001的、正在运行的例程。该指令用于中断一个耗时较长或需要手动中止的诊断操作。
31 03 00 01请求例程结果4这是一条请求例程执行结果查询指令。它命令ECU返回其内部编号为 0001的例程的最终执行结果或当前状态信息。


(6)28服务:通讯控制.

概况:28服务:诊断仪对ECU下达的“禁言或“解除禁言”命令,用于精确管理ECU在车辆网络(如CAN总线)上的通信权限。

一个简单的比喻:

车辆网络:像一个会议厅,各个ECU(如发动机、变速箱、ABS控制器)是参会者。

正常通信:每个参会者(ECU)都可以自由发言(发送消息)和听别人发言(接收消息)。

通信控制服务(0x28):就像是会议主席(诊断仪)​ 的权限,他可以命令某个参会者:

        “你可以听Rx,但不能说Tx”(启用接收,禁用发送)

        “你既不能说Tx,也不能听Rx”(禁用接收和发送)

        “恢复正常,可以说Tx也可以听Rx”(启用接收和发送)


一般都是:28服务在P挡状态下,发送诊断指令28 01 01:启用Rx(接收功能)和禁用Tx(发送功能),积极响应;

指令常见名称

标准格式长度

(至少3字节)

描述
28 01 01通信控制服务3这是一条通信控制指令。它命令ECU对指定通信通道上的所有消息启用接收功能但禁用发送功能。该指令将使ECU进入“只听不说”的静默状态,常用于网络管理和诊断测试。

一般都是:在车辆行驶速度大于20Km/h的状态下,发送诊断指令28 01 01,启用Rx和Tx,消极响应,NRC:22,请求的诊断服务的执行条件不满足;

   

    

     

http://www.dtcms.com/a/589811.html

相关文章:

  • Python字符串详解
  • STL中容器vector -- 讲解超详细
  • 线性代数 - 特征值和特征向量可视化是什么样的
  • 不用下载劰网站的片你懂的荷塘网站建设
  • 网站优化推广软件建立微信小程序
  • 【Java Web学习 | 第七篇】JavaScript(1) 基础知识1
  • ERROR: Failed building wheel for dlib
  • 【Cursor AI编程】Cursor安装与初始化
  • 网站建设规划书的目的做两个阿里网站吗
  • 正交频分复用技术
  • 【Android】活动的生命周期、启动模式及标记位
  • 建站案例系统小说
  • 招聘网站建设维护广西城乡建设部网站
  • 多线程编程:从日志到单例模式全解析
  • 邢台市建设局网站定制网站开发的目的是什么
  • 还在自制工作标准品或对照品吗?标准物质供应商推荐
  • 机器学习(4) cost function(代价函数)
  • 翻译《The Old New Thing》- 为什么 SHFormatDateTime 要接收一个未对齐的 FILETIME?
  • 企业网站怎么做的好看在wordpress添加算法
  • 基于「YOLO目标检测 + 多模态AI分析」的医学骨折检测分析系统(vue+flask+数据集+模型训练)
  • linux31 网络编程TCP协议
  • 南昌 网站建设黄山网站建设公司
  • 深入解析:动画组件为何必须使用useCallback
  • 深度强化学习算法详解:从理论到实践
  • 4.1.8 文件系统基础【2011统考真题】
  • 行业网站开发互联网广告平台有哪些
  • 做网站自己上传电影要多大服务器电商是做什么的?
  • 零基础学JAVA--Day27(注释+异常+异常处理方法)
  • 新华网站建设设计漂亮的网站
  • Linux下的编译器gcc/g++