CN114298135B - 基于差分法的can数据逆向解析方法、装置及电子设备 - Google Patents
基于差分法的can数据逆向解析方法、装置及电子设备 Download PDFInfo
- Publication number
- CN114298135B CN114298135B CN202111336171.8A CN202111336171A CN114298135B CN 114298135 B CN114298135 B CN 114298135B CN 202111336171 A CN202111336171 A CN 202111336171A CN 114298135 B CN114298135 B CN 114298135B
- Authority
- CN
- China
- Prior art keywords
- data
- dynamic
- result
- static
- counter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Traffic Control Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种基于差分法的CAN数据逆向解析方法、装置及电子设备,在汽车静态和动态时采集数据标识对应的数据,将一阶差分法应用于CAN数据的逆向解析,对动态数据和静态数据进行差分操作,通过将差分操作得到的结果数据集与动态操作进行比较,可以还原CAN数据的具体含义。这样,可以以比特为单位完成CAN数据的逆向解析。同时,采用本申请提供的基于差分法的CAN数据逆向解析方法对550万个CAN数据完成差分操作仅需14.5秒。这样,降低了CAN数据逆向解析方法在处理大量CAN数据时的复杂度。
Description
技术领域
本申请涉及数据分析技术领域,尤其涉及一种基于差分法的CAN(ControllerArea Network,控制器局域网)数据逆向解析方法、装置及电子设备。
背景技术
CAN是目前应用最广泛的车载网络之一。CAN允许ECU(Electronic Control Unit,电子控制单元)相互通信。ECU控制车辆系统的各种功能,如发动机和变速器控制。因此,CAN和ECU是黑客的高优先级攻击目标。如果CAN和连接部件受到攻击,车辆可能会发生严重故障和致命事故。然而,目前车辆安全研究人员很难挖掘出黑客想要发送和控制的车辆中CAN消息的确切含义。假使我们能够挖掘出汽车CAN消息的具体语义,就能更方便的检测复杂的攻击和攻击者。然而,CAN规范信息文件是汽车制造商的私有信息,我们想揭示CAN报文的确切含义,就需要利用逆向工程技术对报文进行分析,这是一项费时费力的工作。
目前的CAN数据逆向解析方法不够细致,无法做到比特级别的逆向;目前针对CAN数据逆向解析所提出的算法过于复杂,对于大数量的处理会耗费很多的时间;某些攻击不通过OBD(On-Board Diagnostics,车载自动诊断系统)进行,无法面对所有的攻击手段。
发明内容
有鉴于此,本申请的目的在于提出一种基于差分法的CAN数据逆向解析方法、装置及电子设备。
基于上述目的,本申请的第一方面提供了一种基于差分法的CAN数据逆向解析方法,包括:
采集汽车静止状态时的数据集作为静态数据集;
采集汽车动态操作时的数据集作为动态数据集;
对所述静态数据集进行第一差分处理,得到静态结果集;
响应于确定所述静态结果集中存在计数器,将所述计数器对应的数据位设置为零,并将所述计数器进行标记,得到计数器标记,将所述计数器标记发送到所述动态数据集;
根据所述计数器标记,将所述动态数据集中的所述计数器设置为零;
对所述动态数据集进行第二差分处理,得到动态结果集;
将所述动态结果集和所述静态结果集进行第三差分处理,得到结果数据集;
将所述结果数据集与所述汽车动态操作进行比较,得到所述结果数据集对应的逆向解析集,以实现CAN数据的逆向解析。
本申请的第二方面提供了一种基于差分法的CAN数据逆向解析装置,包括:
静态数据采集模块,用于采集汽车静止状态时的数据集作为静态数据集;
动态数据采集模块,用于采集汽车动态操作时的数据集作为动态数据集;
静态差分模块,用于对所述静态数据集进行第一差分处理,得到静态结果集;
计数器确认模块,用于响应于确定所述静态结果集中存在计数器,将所述计数器对应的数据位设置为零,并将所述计数器进行标记,得到计数器标记;
计数器消除模块,根据所述计数器标记,将所述动态数据集中的所述计数器设置为零;
动态差分模块,用于对所述动态数据集进行第二差分处理,得到动态结果集;
结果差分模块,用于将所述动态结果集和所述静态结果集进行第三差分处理,得到结果数据集;
解析结果模块,用于将所述结果数据集与所述汽车动态操作进行比较,得到所述结果数据集对应的逆向解析集,以实现CAN数据的逆向解析。
本申请的第三方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
从上面所述可以看出,本申请提供的一种基于差分法的CAN数据逆向解析方法、装置及电子设备,在汽车静态和动态时采集数据标识对应的数据,将一阶差分法应用于CAN数据的逆向解析,对动态数据和静态数据进行差分操作,通过将差分操作得到的结果数据集与动态操作进行比较,可以还原CAN数据的具体含义。这样,可以以比特为单位完成CAN数据的逆向解析。同时,采用本申请提供的基于差分法的CAN数据逆向解析方法对550万个CAN数据完成差分操作仅需14.5秒。这样,降低了CAN数据逆向解析方法在处理大量CAN数据时的复杂度。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的基于差分法的CAN数据逆向解析方法的流程图;
图2为本申请实施例的采集动态数据集的流程图;
图3为本申请实施例的第一差分处理的流程图;
图4为本申请实施例的获取基准数据的流程图;
图5为本申请实施例的计数器确认的流程图;
图6为本申请实施例的处理动态数据集计数器的流程图;
图7为本申请实施例的第二差分处理的流程图;
图8为本申请实施例的第三差分处理的流程图;
图9为本申请实施例的基于差分法的CAN数据逆向解析装置的示意图;
图10为本申请实施例的电子设备的结构图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
在汽车逆向工程中,主流的方法有两种。一种是利用分类算法自动识别和标注CAN数据帧有效载荷中编码的不同类型信号的分类。另一种是相关性分析,该方法通过分析OBD诊断端口的响应数据与相关的CAN流量数据之间的关系,利用OBD端口来诊断一些攻击。
在分类算法方面通过提出了一种用于提取CAN消息内信号边界的新算法,称为READ(Reverse Engineering of Automotive Data,汽车数据帧的逆向工程)。所提出的READ算法通过检测所有观察到的CAN报文的数据字段的所有比特,并评估其随时间的演变,从CAN流量中提取单个信号。提取的信号可以自动关联到描述信号语义的标签。另一分类算法是一种自动化的CAN总线逆向工程框架LibreCAN(Mert D.Pesé提出的CAN报文自动翻译系统),这是第一个对运动学和车身相关数据进行逆向工程的完整工具。它包括三个阶段:阶段1:从原始CAN记录中提取信号,阶段2:找到运动学信号,阶段3:将人体事件减少到最小候选集合10倍。除了新的阶段2具有非常高的精度外,还证明了阶段1可以达到比以前相关工作更高的精度。除了获得相当高的准确性外,LibreCAN还将反向设计CAN总线消息所需的繁琐人工工作量平均减少到40分钟左右。
在相关性分析方面,研究人员开发了ACA(Automatic CAN Analyzer,自动CAN分析仪)。ACA具有自动逆向工程功能,可以帮助分析来自OBD II(On-Board Diagnostics II,车载自动诊断系统II)诊断查询的响应数据与相关CAN流量数据之间的关系。此外,它还支持基于预先分析的CAN报文信息向CAN总线注入虚假报文的自动攻击功能。研究人员可以通过提供的自动攻击功能,轻松确认逆向工程结果是否正确工作。因此,ACA可以降低车载网络研究的进入门槛,此外,ACA具有自动攻击功能,可作为渗透测试工具使用,安全研究人员可以使用ACA来评估IDS(Intrusion Detection System,车辆入侵检测系统)的性能。自动化逆向工程的整个过程可以总结如下:输入并请求表I中作为PID(Pre-defined ParameterIdentifier,预定义标识符)查询出现的PID,找到车辆支持的OBD-II PID。利用前一过程中获得的受支持的OBD-II PID,分析CAN消息以查找与每个PID相关的CANID(ControllerArea Network Identity Document,控制器局域网身份标识)和数据字段。为验证发现的CAN信息是否正确,ACA根据分析的CAN信息生成假消息,并将其注入CAN总线。最后观察车辆对虚假信息的反应,以验证分析的CAN信息是否正确。
在评估阶段,上述方法有一些局限性。首先,并非运动学相关信号的所有可能值都会在正常驾驶行为下使用。第二,并不是所有的车辆都有前面提出的方法中定义的事件。第三,目前在较新的车辆上进行了实验,但不能保证较旧的车辆将具有相同的功能。第四,这些事件存在于IVN(In-Vehicle Network,车载网络系统)上,但无法通过OBD-II端口访问,该问题的一种可能的解决方案是通过打开隔间来物理地接入CAN总线。然而,这会使车辆的保修失效,因此对普通司机来说是不可行的。
如图1所示,本实施例的方法包括:
步骤101,采集汽车静止状态时的数据集作为静态数据集。
在该步骤中,汽车静止状态指的是,以地面为参照,汽车静止不动的状态。静态数据集指的是,汽车在静止状态下通过OBD口采集的CAN数据帧构成的数据集。
在上述方案中,为了后续差分操作的需要,通过OBD口对汽车静止状态下的CAN数据帧进行采集,得到静态数据集。这样,获得的静态数据集为后续差分操作提供了数据基础。
步骤102,采集汽车动态操作时的数据集作为动态数据集。
在该步骤中,汽车动态操作指的是,以地面为参照,当汽车静止不动时,对汽车执行一系列操作。例如,开门和关门、启动雨刷、打开灯等。动态数据集指的是,汽车在动态操作时通过OBD口采集的CAN数据帧构成的数据集。
在上述方案中,为了后续差分操作的需要,通过OBD口对汽车动态操作时的CAN数据进行采集,得到动态数据集。这样,获得的动态数据集为后续差分操作提供了数据基础。
在一些实施例中,步骤102如图2所示,具体包括:
步骤201,将采集器通过适配器和诊断电缆连接到车辆预定端口,其中,所述采集器为包括采集脚本的电子设备。
在该步骤中,将包括采集脚本的电子设备通过适配器和诊断电缆连接到车辆预定端口。例如,将OBD-II到DB9(9针D形数据接口连接器)诊断电缆的OBD端插入被测车辆的OBD端口,然后将DB9端口连接到PCANUSB FD(是一种可通过USB把CAN FD和CAN网络连接到电脑的适配器),适配器电缆的另一端直接连接到采集器。
步骤202,所述采集器使用采集脚本采集汽车动态操作时的采集数据集。
在该步骤中,开启采集器中预先编写的数据采集脚本以实时获取CAN数据。
步骤203,将所述采集数据集作为所述动态数据集。
在上述方案中,汽车的动态操作无法通过OBD II端口直接访问,需要对OBD II采集到的CAN数据帧进行逆向解析。为了对CAN数据帧进行逆向解析,通过采集器采集动态操作时汽车的CAN数据帧,保证了本申请方法的可行性,避免了在正常驾驶中去采集汽车运动学相关信号的困难。同时,通过对汽车的动态操作,可以自主确定所采集的汽车运动学相关信号。通过从真实车辆进行动态操作,可以获取真实车辆对应汽车制造商的一类CAN规范信息,避免了新款车辆的CAN数据解析和旧款车辆的CAN数据解析的不一致问题。
通过上述方案,为了后续差分操作的需要,通过OBD口对汽车动态操作时的CAN数据进行采集,得到动态数据集。这样,获得的动态数据集为后续差分操作提供了数据基础。
步骤103,对所述静态数据集进行第一差分处理,得到静态结果集。
在该步骤中,第一差分处理指的是,对第一数据和基准数据中的CAN数据进行逐位一阶差分。将经过第一差分处理的静态数据集作为静态结果集。
在上述方案中,为了后续对汽车静态数据进行进一步差分处理,对静态数据集进行第一差分处理,得到静态结果集。这样,获得的静态结果集为第三差分处理提供数据基础。
在一些实施例中,如图3所示,对所述静态数据集进行第一差分处理具体包括:
步骤301,从所述静态数据集中获取数据标号、基准数据和第一数据,其中,所述基准数据和所述第一数据有相同的所述数据标号。
在该步骤中,数据标号指的是,从OBD口采集的CAN数据帧数据中包含的CANID数据。基准数据指的是,从静态数据集中获得的对应于每个CANID的第一次出现的CAN数据。第一数据指的是,从OBD口采集的CAN数据帧数据中包含的CAN数据。
在上述方案中,通过从静态数据集中获取数据标号、基准数据和第一数据,为后续的差分操作提供数据基础。
步骤302,将第一数据逐位与所述基准数据进行一阶差分,得到第一差分结果数据。
在该步骤中,静态数据的数据将被逐位与对应于CANID的基准数据的数据进行差分。例如,CANID为0x43E的第一数据为“0001fe20c0380820”,逐位差分后,得到的第一差分结果数据为“0001010000000000”。
步骤303,将所述第一数据替换为所述第一差分结果数据。
在该步骤中,将CANID对应的第一数据替换为第一差分结果数据。例如,CANID为0x43E的第一数据为“0001fe20c0380820”,替换为“0001010000000000”。
在上述方案中,通过对静态数据集进行第一差分处理,可以得到第一差分结果,为后续对动态数据集的差分操作提供数据基础。同时,差分操作占用内存少,运算速度快,具有较低的复杂度,适合对静态数据集进行处理。
在一些实施例中,如图4所示,从所述静态数据集中获取数据标号、基准数据和第一数据具体包括:
步骤401,获取所述静态数据集中的所述第一数据。
在该步骤中,从静态数据集中获取的第一数据为汽车CAN数据帧中的CAN数据,汽车CAN数据帧包括数据标号和CAN数据。例如,CAN数据帧中的数据标号为CANID,CANID的值为0x43E,CANID对应的CAN数据包括:“0001fe20c0380820”。
步骤402,获取所述静态数据集中的所述数据标号。
在该步骤中,从静态数据集中获取的数据标号为汽车CAN数据帧中的CANID。例如,CAN数据帧中的数据标号为CANID,CANID的值为0x43E。
步骤403,将对应于每个所述数据标号第一次出现的所述第一数据作为所述基准数据。
在该步骤中,基准数据是从静态数据中获得的对应于每个CANID的第一次出现的数据。例如,CANID为0x43E的第一个出现CAN数据为“0000ff20c0380820”,作为基准数据。
在上述方案中,通过从静态数据集中获取数据标号、基准数据和第一数据,为后续的差分操作提供数据基础。
步骤104,响应于确定所述静态结果集中存在计数器,将所述计数器对应的数据位设置为零,并将所述计数器进行标记,得到计数器标记,将所述计数器标记发送到所述动态数据集。
在该步骤中,计数器指的是,第一差分结果数据中出现16次且数据值不重复的数据位。例如,对应于CANID为0x43E的第一差分结果数据为“0001010000000000”、“0002020000000000”…“000a0a0000000000”中的第4位和第6位出现16次且数据值不重复,将第4位和第6位作为计数器。
在上述方案中,计数器在差分处理后会产生差分结果数据,为了消除计数器差分结果数据对静态结果集的影响,将静态结果集中的计数器进行标记,并将计数器标记发送到动态数据集。
在一些实施例中,如图5所示,响应于确定所述静态结果集中存在计数器,将所述计数器对应的数据位设置为零,具体包括:
步骤501,获取所述静态结果集中的所述第一差分结果数据。
在该步骤中,依次获取静态结果集中的对应于CANID的第一差分结果数据。例如,获取对应于CANID为0x43E的第一差分结果数据为“0001010000000000”、“0002020000000000”…“000a0a0000000000”。
步骤502,响应于确定所述第一差分结果数据中存在所述静态结果集中出现16次且数据值不重复的所述数据位,将所述数据位作为所述计数器。
在该步骤中,判定第一差分结果数据中存在出现16次且数据值不重复。例如,对应于CANID为0x43E的第一差分结果数据为“0001010000000000”、“0002020000000000”…“000a0a0000000000”中的第4位和第6位出现16次且数据值不重复,将第4位和第6位作为计数器。
步骤503,将所述第一差分结果数据中的所述计数器对应的所述数据位设置为零。
在该步骤中,将第一差分结果数据中的计数器对应的数据位中的数据值设置为零。例如,对应于CANID为0x43E的第一差分结果数据的第4位和第6位的数据值设置为零。
在上述方案中,通过对静态结果集中的计数器进行处理,可以消除计数器对静态结果集的影响,同时将计数器标记发送到动态数据集,也便于动态数据集消除计数器的影响。
步骤105,根据所述计数器标记,将所述动态数据集中的所述计数器设置为零。
在该步骤中,计数器标记指的是,第一差分结果数据中出现16次且数据值不重复的数据位的标记。根据计数器标记,将动态数据集中的计数器对应的数据设置为零。
在上述方案中,通过对动态数据集中的计数器位置的数据进行清零操作,可以消除计数器对动态数据集的影响,也便于后续继续对动态结果集进行差分操作。
在一些实施例中,如图6所示,步骤105具体包括:
步骤601,所述动态数据集接收所述计数器标记。
步骤602,所述动态数据集将所述计数器标记所在的所述第二数据进行标记,得到第二数据标记。
在该步骤中,动态数据集根据计数器标记动态数据集中的第二数据。例如,对应于CANID为0x43E的第二数据“0001011000000000”和“0001014020000000”包含计数器,则对“0001011000000000”和“0001014020000000”进行标记,得到第二数据标记。
步骤603,根据第二数据标记,将所述第二数据中的所述计数器对应的所述数据位设置为零。
在该步骤中,根据第二数据标记将计数器对应的数据位设置位零。例如,对应于CANID为0x43E的已经标记的第二数据“0001011000000000”和“0001014020000000”的第4位和第6位设置为零,得到“0000001000000000”和“0000004020000000”。
在上述方案中,计数器经过第二差分处理后会产生差分结果数据,为了消除差分结果数据对动态结果集的影响,将动态数据集中计数器位置的数据进行清零。
通过上述方案,通过对动态数据集中的计数器位置的数据进行清零操作,可以消除计数器对动态数据集的影响,也便于后续继续对动态结果集进行差分操作。
步骤106,对所述动态数据集进行第二差分处理,得到动态结果集。
在该步骤中,第二差分处理指的是,将动态数据集中的第二数据逐位与基准数据进行一阶差分。例如,CANID为0x43E的第二数据为“0000ff20c0380820”,逐位差分后,得到的第二差分结果数据为“0000000000000000”。
在上述方案中,为了后续进一步对动态数据集进行差分操作,对动态数据集中的第二数据与基准数据进行第二差分处理,得到动态结果集。这样,获得的动态结果集为后续的第三差分处理提供了数据基础。
在一些实施例中,如图7所示,对所述动态数据集进行第二差分处理,具体包括:
步骤701,从所述动态数据集中获取所述数据标号和第二数据,其中,所述基准数据和所述第二数据有相同的所述数据标号。
在该步骤中,将静态结果集中的所有CANID对应的数据作为基准结果集,并提取动态数据集中对应于相同CANID的第二数据。例如,将静态结果集中CANID为0x43E的数据为“0001010000000000”和“0002020000000000”,作为基准结果集。
步骤702,将第二数据逐位与所述基准数据进行一阶差分,得到第二差分结果数据。
在该步骤中,动态数据集中的数据将被逐位与对应于CANID的基准数据的数据进行差分。例如,CANID为0x43E的第二数据为“0000ff20c0380820”,逐位差分后,得到的第二差分结果数据为“0000000000000000”。
步骤703,将所述第二数据替换为所述第二差分结果数据。
在上述方案中,通过对动态数据集进行差分操作,为后续的第三差分操作提供数据基础。同时,差分操作占用内存少,运算速度快,具有较低的复杂度,适合对动态数据集进行处理。
步骤107,将所述动态结果集和所述静态结果集进行第三差分处理,得到结果数据集。
在该步骤中,第三差分处理指的是,将动态结果集中的数据逐位与静态结果集中的相应数据进行一阶差分。例如,静态结果集中CANID为0x43E的数据为“0001010000000000”和“0002020000000000”,与动态结果集中CANID为0x43E的数据为“0000001000000000”和“0000004020000000”,做一阶差分后的数据为“0000001000000000”和“0000004020000000”。
在上述方案中,为了得到最终汽车动态操作和CAN数据的对应关系,将动态结果集和静态结果集中的相应数据进行一阶差分,得到结果数据集。这样,获得的结果数据集中的差分数据可以标示出汽车动态操作时对应变化的CAN数据。
在一些实施例中,如图8所示,步骤107具体包括:
步骤801,按照所述数据标号,获取所述动态结果集和所述静态结果集中的数据。
步骤802,将所述动态结果集中的数据逐位与所述静态结果集中的相应数据进行一阶差分,以得到所述结果数据集。
在该步骤中,将动态结果集中CANID对应的数据逐位与基准结果集中CANID对应的数据进行一阶差分。例如,静态结果集中CANID为0x43E的数据为“0001010000000000”和“0002020000000000”,与动态结果集中CANID为0x43E的数据为“0000001000000000”和“0000004020000000”,做一阶差分后的数据为“0000001000000000”和“0000004020000000”。
在上述方案中,为了得到最终汽车动态操作和CAN数据的对应关系,将动态结果集和静态结果集中的相应数据进行一阶差分,得到结果数据集。这样,获得的结果数据集中的差分数据可以标示出汽车动态操作时对应变化的CAN数据。
通过上述方案,通过对动态结果集和静态结果集进行一阶差分操作,得到最终的结果数据集,为分析CAN数据与汽车动态操作的关系提供数据基础。同时,差分操作占用内存少,运算速度快,具有较低的复杂度,适合对静态结果集和动态结果集进行处理。
步骤108,将所述结果数据集与所述汽车动态操作进行比较,得到所述结果数据集对应的逆向解析集,以实现CAN数据的逆向解析。
在该步骤中,根据对最终数据结果集的分析,当车门关闭时,0x43E的数据仍为“0000ff20c0380820,而在打开驾驶员车门时,数据位变为“0000ff20e0380820”;在打开乘客车门时,数据位将变为“0000ff20d0380820”;打开左、右后座车门时,数据位将变为“0000ff20c4380820”和“0000ff20c8380820”。由此可见,通过对静态数据集和动态数据集进行一系列差分操作后,可以获得所有状态变化的数据集,并结合动态操作进行分析,准确反转CAN数据的确切含义。这样,CAN数据逆向解析过程就完成了。
通过上述方案,在汽车静态和动态时采集数据标识对应的数据,将一阶差分法应用于CAN数据的逆向解析,对动态数据和静态数据进行差分操作,通过将差分操作得到的结果数据集与动态操作进行比较,可以还原CAN数据的具体含义。这样,可以以比特为单位完成CAN数据的逆向解析。同时,采用本申请提供的基于差分法的CAN数据逆向解析方法对550万个CAN数据完成差分操作仅需14.5秒。这样,降低了CAN数据逆向解析方法在处理大量CAN数据时的复杂度。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例基于差分法的CAN数据逆向解析方法相对应的,本申请还提供了一种基于差分法的CAN数据逆向解析装置。
参考图9,所述基于差分法的CAN数据逆向解析装置,包括:
静态数据采集模块901,用于采集汽车静止状态时的数据集作为静态数据集。
动态数据采集模块902,用于采集汽车动态操作时的数据集作为动态数据集。
静态差分模块903,用于对所述静态数据集进行第一差分处理,得到静态结果集。
计数器确认模块904,用于响应于确定所述静态结果集中存在计数器,将所述计数器对应的数据位设置为零,并将所述计数器进行标记,得到计数器标记。
计数器消除模块905,根据所述计数器标记,将所述动态数据集中的所述计数器设置为零。
动态差分模块906,用于对所述动态数据集进行第二差分处理,得到动态结果集。
结果差分模块907,用于将所述动态结果集和所述静态结果集进行第三差分处理,得到结果数据集。
解析结果模块908,用于将所述结果数据集与所述汽车动态操作进行比较,得到所述结果数据集对应的逆向解析集,以实现CAN数据的逆向解析。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的基于差分法的CAN数据逆向解析方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的基于差分法的CAN数据逆向解析方法。
图10示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1001、存储器1002、输入/输出接口1003、通信接口1004和总线1005。其中处理器1001、存储器1002、输入/输出接口1003和通信接口1004通过总线1005实现彼此之间在设备内部的通信连接。
处理器1001可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1002可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1002可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1002中,并由处理器1001来调用执行。
输入/输出接口1003用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1004用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1005包括一通路,在设备的各个组件(例如处理器1001、存储器1002、输入/输出接口1003和通信接口1004)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1001、存储器1002、输入/输出接口1003、通信接口1004以及总线1005,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的基于差分法的CAN数据逆向解析方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (6)
1.一种基于差分法的CAN数据逆向解析方法,其特征在于,包括:
采集汽车静止状态时的数据集作为静态数据集;
采集汽车动态操作时的数据集作为动态数据集;
从所述静态数据集中获取数据标号、基准数据和第一数据,其中,所述第一数据为所述数据标号对应的所述静态数据集中的数据,所述基准数据为所述数据标号第一次出现时的所述第一数据,所述基准数据和所述第一数据有相同的所述数据标号;将所述第一数据逐位与所述基准数据进行一阶差分,得到第一差分结果数据,并将一阶差分处理后的所述静态数据集作为静态结果集;
响应于确定所述第一差分结果数据中存在所述静态结果集中出现16次且数据值不重复的数据位,将所述数据位作为计数器;将所述第一差分结果数据中的所述计数器对应的所述数据设置为零,并将所述计数器进行标记,得到计数器标记,并将所述计数器标记发送到所述动态数据集;
根据所述计数器标记,将所述动态数据集中的所述计数器设置为零;
从所述动态数据集中获取所述数据标号和第二数据,其中,所述第二数据为所述数据标号对应的所述动态数据集中的数据,所述基准数据和所述第二数据有相同的所述数据标号;将第二数据逐位与所述基准数据进行一阶差分,得到第二差分结果数据,并将一阶差分处理后的所述动态数据集作为动态结果集;
将所述动态结果集和所述静态结果集进行第三差分处理,得到结果数据集;
将所述结果数据集与所述汽车动态操作进行比较,得到所述结果数据集对应的逆向解析集,以实现CAN数据的逆向解析。
2.根据权利要求1所述的方法,其特征在于,所述将所述动态结果集和所述静态结果集进行第三差分处理,包括:
按照所述数据标号,获取所述动态结果集和所述静态结果集中的数据;
将所述动态结果集中的数据逐位与所述静态结果集中的相应数据进行一阶差分,以得到所述结果数据集。
3.根据权利要求1所述的方法,其特征在于,所述根据所述计数器标记,将所述动态数据集中的所述计数器设置为零,包括:
所述动态数据集接收所述计数器标记;
所述动态数据集将所述计数器标记所在的所述第二数据进行标记,得到第二数据标记;
根据第二数据标记,将所述第二数据中的所述计数器对应的所述数据设置为零。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述采集汽车动态操作时的数据集作为动态数据集,包括:
将采集器通过适配器和诊断电缆连接到车辆预定端口,其中,所述采集器为包括采集脚本的电子设备;
所述采集器使用采集脚本采集汽车动态操作时的采集数据集;
将所述采集数据集作为所述动态数据集。
5.一种基于差分法的CAN数据逆向解析装置,其特征在于,包括:
静态数据采集模块,用于采集汽车静止状态时的数据集作为静态数据集;
动态数据采集模块,用于采集汽车动态操作时的数据集作为动态数据集;
静态差分模块,用于从所述静态数据集中获取数据标号、基准数据和第一数据,其中,所述第一数据为所述数据标号对应的所述静态数据集中的数据,所述基准数据为所述数据标号第一次出现时的所述第一数据,所述基准数据和所述第一数据有相同的所述数据标号;将所述第一数据逐位与所述基准数据进行一阶差分,得到第一差分结果数据,并将一阶差分处理后的所述静态数据集作为静态结果集;
计数器确认模块,用于响应于确定所述第一差分结果数据中存在所述静态结果集中出现16次且数据值不重复的数据位,将所述数据位作为计数器;将所述第一差分结果数据中的所述计数器对应的所述数据设置为零,并将所述计数器进行标记,得到计数器标记,并将所述计数器标记发送到所述动态数据集;
计数器消除模块,根据所述计数器标记,将所述动态数据集中的所述计数器设置为零;
动态差分模块,用于从所述动态数据集中获取所述数据标号和第二数据,其中,所述第二数据为所述数据标号对应的所述动态数据集中的数据,所述基准数据和所述第二数据有相同的所述数据标号;将第二数据逐位与所述基准数据进行一阶差分,得到第二差分结果数据,并将一阶差分处理后的所述动态数据集作为动态结果集;
结果差分模块,用于将所述动态结果集和所述静态结果集进行第三差分处理,得到结果数据集;
解析结果模块,用于将所述结果数据集与所述汽车动态操作进行比较,得到所述结果数据集对应的逆向解析集,以实现CAN数据的逆向解析。
6.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至3任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111336171.8A CN114298135B (zh) | 2021-11-11 | 2021-11-11 | 基于差分法的can数据逆向解析方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111336171.8A CN114298135B (zh) | 2021-11-11 | 2021-11-11 | 基于差分法的can数据逆向解析方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114298135A CN114298135A (zh) | 2022-04-08 |
CN114298135B true CN114298135B (zh) | 2022-07-22 |
Family
ID=80964123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111336171.8A Active CN114298135B (zh) | 2021-11-11 | 2021-11-11 | 基于差分法的can数据逆向解析方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114298135B (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9652423B2 (en) * | 2013-06-05 | 2017-05-16 | Texas Instruments Incorporated | CAN and flexible data rate CAN node apparatus and methods for mixed bus CAN FD communications |
CN106569047B (zh) * | 2015-10-09 | 2019-04-30 | 惠州市德赛西威汽车电子股份有限公司 | 一种车载can总线的分析装置及方法 |
EP3547191B1 (en) * | 2018-03-30 | 2024-06-05 | AO Kaspersky Lab | System and method of generating rules for blocking a computer attack on a vehicle |
RU2725033C2 (ru) * | 2018-03-30 | 2020-06-29 | Акционерное общество "Лаборатория Касперского" | Система и способ создания правил |
US11780389B2 (en) * | 2019-12-13 | 2023-10-10 | Ut-Battelle, Llc | Controller area network decoder (CAN-D) |
CN111130937B (zh) * | 2019-12-24 | 2020-12-15 | 国家计算机网络与信息安全管理中心 | 协议解析方法、装置、电子设备及存储介质 |
CN112526978A (zh) * | 2020-12-09 | 2021-03-19 | 智道网联科技(北京)有限公司 | 车辆驾驶性能检测方法及系统、电子设备和存储介质 |
-
2021
- 2021-11-11 CN CN202111336171.8A patent/CN114298135B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114298135A (zh) | 2022-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pesé et al. | LibreCAN: Automated CAN message translator | |
DE102016208048B4 (de) | Automobile, diagnosesysteme und verfahren zur erzeugung von diagnosedaten für automobile | |
CN106559431B (zh) | 一种用于汽车安全检测的可视化分析方法和装置 | |
US11180154B2 (en) | Fingerprinting drivers based on vehicle turns | |
US20220303305A1 (en) | Automated can message translator | |
CN113703868B (zh) | 车辆诊断软件配置方法、电子设备及可读存储介质 | |
CN112491920A (zh) | 一种车载can总线的异常检测方法及装置 | |
CN110620760A (zh) | 一种SVM和贝叶斯网络的FlexRay总线融合入侵检测方法和检测装置 | |
CN113778050A (zh) | 车辆远程诊断方法、装置、存储介质及车辆售后终端 | |
CN111596638B (zh) | 车辆故障排查方法、装置、设备和计算机可读存储介质 | |
CN112019512A (zh) | 汽车网络安全测试系统 | |
CN112637029B (zh) | 一种车辆内can数据帧信号提取方法与装置 | |
Buscemi et al. | A data-driven minimal approach for CAN bus reverse engineering | |
CN114298135B (zh) | 基于差分法的can数据逆向解析方法、装置及电子设备 | |
DE102021125867A1 (de) | Automatisierte detektion von fahrzeugdatenmanipulation und mechanischen ausfällen | |
CN114697062A (zh) | 一种车辆入侵检测方法及终端 | |
CN117032179A (zh) | 一种汽车诊断方法、装置、汽车及存储介质 | |
CN112859805A (zh) | 一种发动机控制器在线诊断方法及相关装置 | |
CN116775464A (zh) | 一种整车测试方法及系统 | |
Répás et al. | Autonomous Vehicles Forensics-The next step of the Digital Vehicles Forensics | |
Buquerin et al. | Digital forensics investigation of the tesla autopilot file system,” | |
CN111145380A (zh) | 适配车载设备的上报数据处理方法、装置、电子设备 | |
Mokhadder et al. | An intelligent approach to reverse engineer CAN messages in automotive systems | |
CN113705961B (zh) | 基于车辆动力总成功能的风险等级评估分解方法及装置 | |
CN110553849A (zh) | 一种行车状况评估系统以及评估方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |