电动汽车的车型复杂多样,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

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time