通过汽车中的OBD连接器可以做什么

在现代汽车中,眼前所有的系统都被各种电子设备所堵塞,这已经不是什么秘密了,即使是简单的车窗升降器也有自己的微控制器和共享网络上的地址。 作为一个感兴趣的所有者,我想知道仅通过访问OBD连接器就可以做什么而已。

本文中描述的所有内容均指2008年的汽车(三菱蓝瑟),但实践证明,制造商经过10年没有改变任何事情,所有功能仍在现代汽车上使用和使用。

汽车中的网络结构如图所示:

图片

该车有3条CAN总线(高速电动机总线500kbps,低速驾驶室83.3 kbps,诊断)和一条LIN总线。 它们之间的连接链路是ETACS(电子汽车总体控制系统)模块,该模块充当“网关”,并根据某些规则将消息从一条总线发送到另一条总线,并对其进行处理。 CAN总线可以做什么? 例如,与聊天块聊天,或者更改某些内容。 要开始与任何块的对话,您需要知道其地址,以及可以处理并给出答案的支持的功能(PID)。

在公共领域中存在用于经销商的软件,称为MUT III。 研究了数据库之后,您可以找到我们感兴趣的所有信息。

关于CAN网络中的地址(请求-响应):

图片

请求的PID,对所有块的响应进行完全解密,包括响应中字节的位置(如果在一个帧中发送了多个值)和因子,单位为:

图片

例如,我们想知道转向角。 为此,将命令2102发送到ESP控制单元,作为响应,消息6102 FFEA000008FFF302将到达

查看表,我们发现需要字节2和3。

图片

int16中的值。 0xFFEA = -22,乘以0.04375倍,得到的转向角为-0.9625度。

因此,您可以从控制单元请求很多信息,直到收音机播放了多少小时以及将多少磁盘装入了收音机,以及在所有节点上运行诊断测试(例如,您可以打开仪表板上的不同指示灯并拉箭头)。

图片


好吧,我们想要的只是我们学到的东西,但这有什么好处? 现在,如果您更改/启用/禁用某项功能...

一个简单的例子。 在自动变速箱控制单元中,有一个用于机油老化程度的软件计数器,当累积了某个阈值时,在bk屏幕上会出现一条消息,指出需要维修变速箱。 换了油后,消息继续显示在屏幕上,因为没有人可以重置计数器,只有MUT-III经销商扫描仪可以重置(花费约1000美元,不是每个人都负担得起)和一些程序(也不免费)。 在同一表格中,所有这些都可以用易于解释的名称CLEAR_CVT_oil_degradation_level_Start找到团队。 您可以朝着OD的方向恶笑,自己重置这个命运多f的柜台。 我们将命令31 03发送到CVT块,然后...得到7F 31 33作为响应。

一个小题外话。 几乎所有车辆都使用UDS机制(即ISO 14229)进行诊断和维护。

它简化了汽车诊断扫描仪开发人员的寿命,并且对所有汽车制造商都是统一的(但这并不意味着有些汽车制造商无法在其基础上发明自己的附件)。

结果,我们得到了来自变量器的解密响应:7F-请求被拒绝,31是我们发送的PID, 负响应代码 33,即安全访问被拒绝。 也就是说,我们无权更改或请求此功能。 她有谁?

题外话2. UDS使用一种机制将访问限制为几个级别-常规诊断会话,扩展会话,编程会话等。 每个会话的访问级别决定了您可以做什么和不可以做什么。 要访问它们,您需要从块中请求所谓的Seed,使用特定算法对其进行处理,然后将其发送回(Key)块。 在这里阅读更多。

让我们尝试请求种子。 我们将命令2701发送到ECU,并得到响应6701 6A43FD3C。
发送任何4字节的值作为响应( 27 02 DEADBEEF),我们得到的响应7F 27 35,其中35是无效密钥(无效密钥),因为 “从天花板上”的值已发送。 在哪里寻找密钥计算算法? 控制单元的固件中没有其他地方。 很容易获得它(但不是在所有块上,这都取决于所使用的微控制器),首先我们找到CAN接收处理程序,然后找到处理函数PID 0x27。

图片

重复使用固件中的算法交换种子密钥,我们得到6702 34作为响应,其中34是“允许访问”。 此后,重置机油降解水平的命令成功完成,并且不返回负响应代码,而是返回正响应7103 01和计数器。

因此,通过OBD连接器,您几乎可以对汽车进行任何操作:更改模块中的VIN编号,配置编码(配置),在不到一秒钟的时间内关闭防盗锁,清除错误信息,并在加载任何模块时将模块进入启动状态代码并执行它。 日本的安全系统有些la脚。

视频配置更改的示例:


本文仅用于提供信息。 对汽车电子控制单元的任何干预都可能是最后的干预。 祝大家有美好的一天!

Source: https://habr.com/ru/post/zh-CN448658/


All Articles