电动汽车的车型复杂多样,TBOX如何做好汽车的总线数据功能协议适配?

本文主要是介绍电动汽车的车型复杂多样,TBOX如何做好汽车的总线数据功能协议适配?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一般可以借助 CANalyst-II 总线报文收发器工具与汽车的 CAN 总线相连,可以获取到 CAN总线上广播的 CAN 数据包。通过 CanTest 软件可以实时的观察到 CAN 总线上正在发送的数据包。

从大量的 CAN 数据包中进行逆向分析,找到汽车车身的控制指令对应的是哪一个 CAN ID,逆向分析出这样 CAN 数据包所代表的含义,这是最基本也是最重要的一步。逆向出了这些车身控制的数据包指令信息后,了解这些数据包的工作原理。根据这些数据包的工作原理,制定出可行性攻击策略。例如:

对于车身的某一项功能的控制,只需要一个 CAN ID 的数据包即可达到控制效果,对于这种情况,只需要单纯的重放这一个数据报即可达到攻击的目的,控制汽车车身的某一项功能。对于车身的某一项功能的控制,可能需要多个 CAN ID 的数据包联合才能控制。构造一个这样的 CAN ID 数据包,设定发送间隔发送到 CAN 网络当中,间隔的制定是为了绕过 ECU 的时间检测机制。

某些的 CAN ID 数据包中带有计数器,我们所谓的心跳包,在攻击的时候必须加上计数器,才能绕过系统检查。编写一个脚本程序模拟 CAN ID 数据包数据位的变化规律,将这样的数据发送到 CAN 总线当中等等。

数据包上一共 8 位,每一位上的字节代表什么。例如速度表上的数值,是 CAN 数据包数据位某几位数值,带入一个计算公式计算出来的,前两位数值相加与第四位数值的乘积为当前的车速值。对于这种数据包的破解,我们需要大量收集这个数据包,逆向出来这个公式。

CanTest 的 DBC(数据库功能)功能逆向数据包所代表的指令,DBC 功能能够显示当前总线中有多少种 CAN ID。在汽车作出动作指令后,CAN ID 的报文是如何进行变化的,DBC 会把变化的部分标成红色。通过观察哪一个 CAN ID 在汽车发出指令后发生变化(这种变化通常只在瞬间),来确定此项车身控制指令对应的是哪一个 CAN ID。

以车门数据为例,通过改变车门的开关状态,利用 DBC 进行观察。在车门改变开关状态的同时,观察是哪一个 CAN ID 发生了变化,从而确定和车门状态相关的 CAN ID是哪一个。测试环境说明:汽车未启动,车内一切电器设备保持原有状态,只对车门状态进行改变,DBC 界面如图:

通过实验统计发现车门的开关状态和数据位的第一位的第二个字节有关:

** ** ** 10 04 19 02 FF。

四个车门正好有 16 种状态,第一位的第二个字节正好能全部表示,如下表 3-2 所示:√表示车门开,×表示车门关。

这篇关于电动汽车的车型复杂多样,TBOX如何做好汽车的总线数据功能协议适配?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/841075

相关文章

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

Python给Excel写入数据的四种方法小结

《Python给Excel写入数据的四种方法小结》本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有... 目录1. 使用 openpyxl 库2. 使用 xlsxwriter 库3. 使用 pandas 库

SpringBoot定制JSON响应数据的实现

《SpringBoot定制JSON响应数据的实现》本文主要介绍了SpringBoot定制JSON响应数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录前言一、如何使用@jsonView这个注解?二、应用场景三、实战案例注解方式编程方式总结 前言

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek

Python实现多路视频多窗口播放功能

《Python实现多路视频多窗口播放功能》这篇文章主要为大家详细介绍了Python实现多路视频多窗口播放功能的相关知识,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下... 目录一、python实现多路视频播放功能二、代码实现三、打包代码实现总结一、python实现多路视频播放功能服务端开

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

在Rust中要用Struct和Enum组织数据的原因解析

《在Rust中要用Struct和Enum组织数据的原因解析》在Rust中,Struct和Enum是组织数据的核心工具,Struct用于将相关字段封装为单一实体,便于管理和扩展,Enum用于明确定义所有... 目录为什么在Rust中要用Struct和Enum组织数据?一、使用struct组织数据:将相关字段绑

在Mysql环境下对数据进行增删改查的操作方法

《在Mysql环境下对数据进行增删改查的操作方法》本文介绍了在MySQL环境下对数据进行增删改查的基本操作,包括插入数据、修改数据、删除数据、数据查询(基本查询、连接查询、聚合函数查询、子查询)等,并... 目录一、插入数据:二、修改数据:三、删除数据:1、delete from 表名;2、truncate

css实现图片旋转功能

《css实现图片旋转功能》:本文主要介绍了四种CSS变换效果:图片旋转90度、水平翻转、垂直翻转,并附带了相应的代码示例,详细内容请阅读本文,希望能对你有所帮助... 一 css实现图片旋转90度.icon{ -moz-transform:rotate(-90deg); -webkit-transfo