CN111130937B - 协议解析方法、装置、电子设备及存储介质 - Google Patents
协议解析方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111130937B CN111130937B CN201911350703.6A CN201911350703A CN111130937B CN 111130937 B CN111130937 B CN 111130937B CN 201911350703 A CN201911350703 A CN 201911350703A CN 111130937 B CN111130937 B CN 111130937B
- Authority
- CN
- China
- Prior art keywords
- protocol
- analyzed
- bus
- content
- determining
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
Abstract
本发明实施例公开了一种协议解析方法、装置、电子设备及存储介质,该方法包括:确定待解析的控制器局域网络CAN总线协议内容;基于在CAN总线上进行的所述待解析的CAN总线协议内容对应的指定协议交互,获取用于协议解析的参照数据;根据所述参照数据,通过线性拟合的方式确定所述待解析的CAN总线协议内容对应的协议解析结果。因此,本发明实施例实现了通过指定协议交互得到的数据内容作为参照进行数据拟合的CAN私有协议自动化解析,降低了协议解析的难度,还提高了CAN总线协议解析效率。
Description
技术领域
本发明涉及汽车信息安全技术领域,具体涉及一种协议解析方法、装置、电子设备及存储介质。
背景技术
随着无线网络技术的发展,越来越多的汽车具有联网功能。由于目前汽车内部的网络具有天然的安全缺陷,所以一旦汽车接入外部网络则具备了汽车内部网络可被远程访问的可能性,从而产生安全隐患。
CAN(Controller Area Network,控制器局域网络)总线是汽车内部网络应用最广泛的总线,作为攻击路径上的最后一个区域,CAN总线的私有协议解析可作为CAN总线渗透的一个重要环节,以此评估汽车的安全状况。同时CAN总线私有协议的解析结果可供入侵检测等安全产品使用,以进一步提高检测精度。
但是,目前的CAN总线私有协议逆向工具对汽车动力参数的解析过程中,需要操作人员的大量经验,从而增加了解析汽车动力参数的难度。
发明内容
由于现有方法存在上述问题,本发明实施例提出一种协议解析方法、装置、电子设备及存储介质
第一方面,本发明实施例提供一种协议解析方法,包括:
确定待解析的控制器局域网络CAN总线协议内容;
基于在CAN总线上进行的所述待解析的CAN总线协议内容对应的指定协议交互,获取用于协议解析的参照数据;
根据所述参照数据,通过线性拟合的方式确定所述待解析的CAN总线协议内容对应的协议解析结果。
可选地,所述指定协议交互包括统一诊断服务UDS交互、和/或车载自动诊断系统OBD交互。
可选地,所述基于在CAN总线上进行的所述待解析的CAN总线协议内容对应的指定协议交互,获取用于协议解析的参照数据,包括:
生成用于获取所述待解析的CAN总线协议内容的请求报文,并将所述请求报文发送到CAN总线上、以及接收所述请求报文对应的应答报文,直至接收到的应答报文数量达到指定数量时,停止发送所述请求报文;
对各个所述应答报文进行解析,得到用于指示所述待解析的CAN总线协议内容的状态数据,并将各个所述状态数据确定为所述参照数据。
可选地,所述根据所述参照数据,通过线性拟合的方式确定所述待解析的CAN总线协议内容对应的协议解析结果,包括:
根据所述参照数据,通过线性拟合的方式对所述待解析的CAN总线协议内容进行验证,并计算拟合结果与所述待解析的CAN总线协议内容之间的标准差;
根据所述标准差确定所述待解析的CAN总线协议内容对应的协议解析结果。
可选地,所述根据所述参照数据,通过线性拟合的方式对所述待解析的CAN总线协议内容进行验证,并计算拟合结果与所述待解析的CAN总线协议内容之间的标准差,包括:
统计接收到的CAN数据流量内的非诊断型ID号的集合;
遍历各个所述状态数据,根据所述状态数据对应的应答报文确定各个非诊断型ID号第一次出现的数据帧,并将所述状态数据和每个所述数据帧均分为一组,以及针对每组中的所述数据帧,按照相邻的指定字节数和指定字节端序进行字节组合,得到各个非诊断型ID号各自对应的一组拟合点;
对各组所述拟合点按照最小二乘法进行线性拟合,并计算拟合结果与所述待解析的CAN总线协议内容之间的标准差。
可选地,所述根据所述标准差确定所述待解析的CAN总线协议内容对应的协议解析结果,包括:
将最小标准差对应的一组拟合点相关信息确定为所述待解析的CAN总线协议内容对应的协议解析结果。
第二方面,本发明实施例提供一种协议解析装置,包括:
确定模块,用于确定待解析的控制器局域网络CAN总线协议内容;
获取模块,用于基于在CAN总线上进行的所述待解析的CAN总线协议内容对应的指定协议交互,获取用于协议解析的参照数据;
解析模块,用于根据所述参照数据,通过线性拟合的方式确定所述待解析的CAN总线协议内容对应的协议解析结果。
可选地,所述指定协议交互包括统一诊断服务UDS交互、和/或车载自动诊断系统OBD交互。
可选地,所述获取模块包括:
获取子模块,用于生成用于获取所述待解析的CAN总线协议内容的请求报文,并将所述请求报文发送到CAN总线上、以及接收所述请求报文对应的应答报文,直至接收到的应答报文数量达到指定数量时,停止发送所述请求报文;
解析子模块,用于对各个所述应答报文进行解析,得到用于指示所述待解析的CAN总线协议内容的状态数据,并将各个所述状态数据确定为所述参照数据。
第三方面,本发明实施例还提出一种电子设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述方法。
第四方面,本发明实施例还提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述方法。
由上述技术方案可知,本发明实施例通过确定待解析的CAN总线协议内容,基于在CAN总线上进行的待解析的CAN总线协议内容对应的指定协议交互,获取用于协议解析的参照数据,根据参照数据,通过线性拟合的方式确定待解析的CAN总线协议内容对应的协议解析结果,从而实现了通过指定协议交互得到的数据内容作为参照进行数据拟合的CAN私有协议自动化解析,降低了协议解析的难度,还提高了CAN总线协议解析效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1为本发明实施例提供的一种协议解析方法的流程示意图;
图2为本发明实施例提供的一种协议解析方法的应用场景图;
图3为本发明实施例提供的一种协议解析装置的结构示意图;
图4为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
图1为本发明实施例提供的一种协议解析方法的流程示意图,该方法可以用于CAN总线收发器;如图1所示,该协议解析方法可以包括以下步骤:
S110、确定待解析的CAN总线协议内容。
具体地,待解析的CAN总线协议内容有很多,比如:汽车动力参数,该动力参数可以包括:发动机转速、车速、油门开度、油门喷射时间等。
S120、基于在CAN总线上进行的待解析的CAN总线协议内容对应的指定协议交互,获取用于协议解析的参照数据。
具体地,指定协议交互是与待解析的CAN总线协议内容相对应的。比如:解析的CAN总线协议内容为解析引擎转速,则在CAN总线上进行的指定协议交互就是针对该引擎转速的指定协议交互。
由于有些待解析的CAN总线协议内容(例如:发动机转速、车速、油门开度)的具体信息值能够被感知并了解它们的变化趋势;还有些待解析的CAN总线协议内容(例如:发动机转速、车速、油门开度)的具体信息值很难被获知,所以本发明实施例提出了一种通过指定协议(例如:UDS、OBD等)交互得到的数据内容作为参照进行数据拟合的CAN私有协议自动化解析方法。其中,UDS可以指的是统一诊断服务(即Unified diagnostic services),OBD可以指的是车载自动诊断系统(即On Board Diagnostics)。
S130、根据参照数据,通过线性拟合的方式确定待解析的CAN总线协议内容对应的协议解析结果。
具体地,线性拟合的方式可以指的是采用最小二乘法进行线性拟合。
由上述实施例可见,通过确定待解析的CAN总线协议内容,基于在CAN总线上进行的待解析的CAN总线协议内容对应的指定协议交互,获取用于协议解析的参照数据,根据参照数据,通过线性拟合的方式确定待解析的CAN总线协议内容对应的协议解析结果,从而实现了通过指定协议交互得到的数据内容作为参照进行数据拟合的CAN私有协议自动化解析,降低了协议解析的难度,还提高了CAN总线协议解析效率。
进一步地,在上述方法实施例的基础上,在执行S120中的指定协议交互可以包括UDS交互、和/或OBD交互。
由上述实施例可见,可以通过UDS和/或OBD交互得到的数据内容作为参照进行数据拟合的CAN私有协议自动化解析,从而提高了CAN总线协议解析的准确性。
进一步地,在上述方法实施例的基础上,在执行S120中基于在CAN总线上进行所述待解析的CAN总线协议内容对应的指定协议交互,获取用于协议解析的参照数据时,可以采用但不限于以下实现方式:
(1-1)生成用于获取所述待解析的CAN总线协议内容的请求报文,并将所述请求报文发送到CAN总线上、以及接收所述请求报文对应的应答报文,直至接收到的应答报文数量达到指定数量时,停止发送所述请求报文。
具体地,若指定协议交互为UDS交互,则请求报文为UDS请求报文,应答报文为UDS应答报文;若指定协议交互为OBD交互,则请求报文为OBD请求报文,应答报文为OBD应答报文。
如图2所示,在进行协议解析时,CAN总线收发器中CAN数据帧接收装置可以一直处于接收状态,同时构造UDS或OBD获取当前车身状态(即待解析的CAN总线协议内容)的请求报文,将构造的请求报文发送到CAN总线上。等待ECU(Electronic Control Unit,电子控制单元)发送相关应答报文,若接到的应答报文数量达到指定数量时,可以关闭CAN数据帧接收装置;否则,继续构造并发送UDS或OBD获取当前车身状态(即待解析的CAN总线协议内容)的请求报文。
其中,指定数量可以是CAN总线收发器按照实际情况提前设置的一个数值,比如:10。
另外,比如:所述待解析的CAN总线协议内容为引擎转速,其对应的OBD请求报文的格式可以如表1所示:
表1
ID号 | DLC | DATA0 | DATA1 | DATA2 | DATA3 | DATA4 | DATA5 | DATA6 | DATA7 |
0x7DF | 4 | 0x02 | 0x01 | 0x0C | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 |
其中,DLC指的是数据长度码(即Data Length Code),0x7DF是协议里定义的广播地址,每个ECU都会接收。
(1-2)对各个所述应答报文进行解析,得到用于指示所述待解析的CAN总线协议内容的状态数据,并将各个所述状态数据确定为所述参照数据。其中,可以设各个状态数据值为{y1,y2,y3,…,yN}。
具体地,比如:所述待解析的CAN总线协议内容为引擎转速,其对应的OBD应答报文的格式可以如表2所示:
表2
其中,DATA3和DATA4两个字节(大端序)指示引擎转速信息。
由上述实施例可见,通过生成用于获取所述待解析的CAN总线协议内容的请求报文,并将所述请求报文发送到CAN总线上、以及接收所述请求报文对应的应答报文,直至接收到的应答报文数量达到指定数量时,停止发送所述请求报文;对各个所述应答报文进行解析,得到用于指示所述待解析的CAN总线协议内容的状态数据,并将各个所述状态数据确定为所述参照数据,从而实现了利用在CAN总线上进行的指定协议交互过程中来获取用于协议解析的参照数据,从而提高了获取参照数据的可靠性。
进一步地,在上述方法实施例的基础上,在执行S130时,可以采用但不限于以下实现方式:
(2-1)根据参照数据,通过线性拟合的方式对待解析的CAN总线协议内容进行验证,并计算拟合结果与待解析的CAN总线协议内容之间的标准差。
具体地,线性拟合的方式可以指的是采用最小二乘法进行线性拟合。
(2-2)根据标准差确定待解析的CAN总线协议内容对应的协议解析结果。
具体地,可以按照一定规则确定协议解析结果。比如:标准差达到设定条件时,可以该标准差对应的拟合结果确定为待解析的CAN总线协议内容对应的协议解析结果。
进一步地,在上述方法实施例的基础上,在(2-1)中根据参照数据,通过线性拟合的方式对待解析的CAN总线协议内容进行验证,并计算拟合结果与待解析的CAN总线协议内容之间的标准差时,可以采用但不限于以下实现方式:
(3-1)统计接收到的CAN数据流量内的非诊断型ID号的集合。
具体地,CAN总线收发器关闭CAN数据帧接收装置后,表明此时接收到的应答报文已经满足协议解析要求。此时,可以统计接收到的CAN数据流量内的非诊断型ID号的集合。其中,该非诊断型ID号的集合可以记为{ID1,ID2,ID3,…,IDM}
其中,非诊断型ID是原始汽车上出现的ID号,诊断型ID号是参与UDS和OBD协议的ID号。
(3-2)遍历任一所述状态数据对应的应答报文,确定各个非诊断型ID号第一次出现的数据帧,并将所述状态数据和每个所述数据帧均分为一组,以及针对每组中的所述数据帧,按照相邻的指定字节数和指定字节端序进行字节组合,得到各个非诊断型ID号各自对应的一组拟合点。
具体地,遍历yt(1≤t≤N),获得yt对应的应答报文前后各个非诊断型ID号第一次出现的数据帧(Frame),将它们作为相关一组,记为:
其中,yN指的是UDS或者OBD协议返回的当前值,指的是按照相邻的指定字节数和指定字节端序的组合内容序列。以数据域为0x01,0x02,0x03,两字节大端序举例S1对应的数据是0x0102,S2对应的数据是0x0203。
另外,上述指定字节数一般为一个字节或者两个字节。比如精度要求高的车速值是两个字节,燃油压力为一个字节。
(3-3)对各组所述拟合点按照最小二乘法进行线性拟合,并计算拟合结果与所述待解析的CAN总线协议内容之间的标准差。
由上述实施例可见,通过统计接收到的CAN数据流量内的非诊断型ID号的集合,遍历任一所述状态数据对应的应答报文,确定各个非诊断型ID号第一次出现的数据帧,并将所述状态数据和每个所述数据帧均分为一组,以及针对每组中的所述数据帧,按照相邻的指定字节数和指定字节端序进行字节组合,得到各个非诊断型ID号各自对应的一组拟合,对各组所述拟合点按照最小二乘法进行线性拟合,并计算拟合结果与所述待解析的CAN总线协议内容之间的标准差,从而实现了以应答内容作为参照,并且结合原本CAN数据链路层的待解析的内容,通过线性拟合的方法对待解析的内容进行逐一验证,分别计算拟合结果与待解析的内容之间的标准差,最终得到对应的协议解析结果这一自动化解析方案,提高了协议解析的效率。
进一步地,在上述方法实施例的基础上,在执行(2-2)中根据所述标准差确定所述待解析的CAN总线协议内容对应的协议解析结果时,可以采用但不限于以下实现方式:
(4-1)将最小标准差对应的一组拟合点相关信息确定为所述待解析的CAN总线协议内容对应的协议解析结果。
由上述实施例可见,在确定协议解析结果时,可以将最小标准差对应的一组拟合点相关信息确定为所述待解析的CAN总线协议内容对应的协议解析结果,从而提高了协议解析的准确性。
下面以解析引擎转速为例来给出协议解析的具体过程:
(5-1)使CAN数据帧接收装置一直处于接收状态,同时构造用于获取当前引擎转速状态的OBD请求报文,请求报文的格式如上述表1所示,将构造的请求报文发送到CAN总线上。
具体地,当前引擎转速状态是其中的一种车身状态信息。OBD服务还提供很多状态信息,比如车速、燃油压力、节气门位置、发动机负荷等。
(5-2)本例指定应答报文数量为10个。等待ECU发送相关的OBD应答报文。如果OBD应答报文数量达到10个则进行(5-3),否则继续跳转到(5-1)。
具体地,发送一个OBD请求报文,等待OBD应答报文,接收到报文才进行(5-1)或者(5-3)。没有接收到的话,需要超时重传。这个具体实施例只需要10个应答报文,即只需要十个拟合点。
(5-3)关闭CAN数据帧接收装置。统计接收到的CAN数据流量内非诊断型ID号的集合,本例中共有50个非诊断型ID号,记为{ID1,ID2,ID3,…,ID50}。
具体地,非诊断型ID是原始汽车上出现的ID号,诊断型ID号是参与UDS和OBD协议的ID号。
(5-4)解析各个OBD应答报文,解析格式如上述表2所示,提取其中指示引擎转速状态的数据,并将其作为参照数据。设各个指示状态的数据值为{y1,y2,y3,…,y10}。
(5-5)遍历yt(1≤t≤10),获得yt对应的应答报文前后各个非诊断型ID号第一次出现的数据帧,将它们作为相关一组,记为本例中指定引擎状态的私有协议内容为2个字节大端序表示,对每一对1≤t≤10,1≤r≤50,将各个相邻字节进行组合获得各个数值其中表示IDr的DATA0和DATA1按大端序组成的16位的整数,表示IDr的DATA1和DATA2按大端序组成的16位的整数,以此类推。
具体地,指的是具体指定ID(即IDr)的那条数据帧。接收总线上的帧有先后顺序,举例:此时接收到一条包含车速信息(y)的OBD应答帧,Frame0x100指的就是离这条应答帧最近并且ID号等于0x100的数据帧。
(5-6)由(5-5)可得到各个非诊断型ID号的各个按相邻的指定字节数组合的拟合点:
具体地,以IDr为0x100举例,其对应(yt,Frame0x100)的分组。其中,t的范围是1≤t≤10,所以有10个Frame0x100与其对应,s1对应的第一个Frame0x100内容,s2对应第二个Frame0x100内容,总共有10组拟合点,最后是s10。
(5-7)输出标准差最小的一组拟合点相关信息
即ID号为IDr′第s′种字节组合为引擎转速对应的CAN总线协议解析结果。
图3为本发明实施例提供的一种协议解析装置的结构示意图,如图3所示,该协议解析装置可以包括:
确定模块31,用于确定待解析的控制器局域网络CAN总线协议内容;
获取模块32,用于基于在CAN总线上进行的所述待解析的CAN总线协议内容对应的指定协议交互,获取用于协议解析的参照数据;
解析模块33,用于根据所述参照数据,通过线性拟合的方式确定所述待解析的CAN总线协议内容对应的协议解析结果。
进一步地,在上述装置实施例的基础上,述指定协议交互包括UDS交互、和/或OBD交互。
进一步地,在上述装置实施例的基础上,所述获取模块32可以包括:
获取子模块,用于生成用于获取所述待解析的CAN总线协议内容的请求报文,并将所述请求报文发送到CAN总线上、以及接收所述请求报文对应的应答报文,直至接收到的应答报文数量达到指定数量时,停止发送所述请求报文;
解析子模块,用于对各个所述应答报文进行解析,得到用于指示所述待解析的CAN总线协议内容的状态数据,并将各个所述状态数据确定为所述参照数据。
进一步地,在上述装置实施例的基础上,所述解析模块33可以包括:
拟合子模块,用于根据所述参照数据,通过线性拟合的方式对所述待解析的CAN总线协议内容进行验证,并计算拟合结果与所述待解析的CAN总线协议内容之间的标准差;
确定子模块,用于根据所述标准差确定所述待解析的CAN总线协议内容对应的协议解析结果。
进一步地,在上述装置实施例的基础上,所述拟合子模块可以包括:
统计单元,用于统计接收到的CAN数据流量内的非诊断型ID号的集合;
遍历单元,用于遍历各个所述状态数据,根据所述状态数据对应的应答报文确定各个非诊断型ID号第一次出现的数据帧,并将所述状态数据和每个所述数据帧均分为一组,以及针对每组中的所述数据帧,按照相邻的指定字节数和指定字节端序进行字节组合,得到各个非诊断型ID号各自对应的一组拟合点;
拟合单元,用于对各组所述拟合点按照最小二乘法进行线性拟合,并计算拟合结果与所述待解析的CAN总线协议内容之间的标准差。
进一步地,在上述装置实施例的基础上,所述确定子模块可以包括:
确定单元,用于将最小标准差对应的一组拟合点相关信息确定为所述待解析的CAN总线协议内容对应的协议解析结果。
本发明实施例所述的协议解析装置可以用于执行上述方法实施例,其原理和技术效果类似,此处不再赘述。
图4为本发明实施例提供的一种电子设备的结构示意图;如图4所示,该电子设备可以包括:处理器(processor)401、通信接口(Communications Interface)402、存储器(memory)403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信。处理器401可以调用存储器403中的逻辑指令,以执行如下方法:
确定待解析的控制器局域网络CAN总线协议内容;
基于在CAN总线上进行的所述待解析的CAN总线协议内容对应的指定协议交互,获取用于协议解析的参照数据;
根据所述参照数据,通过线性拟合的方式确定所述待解析的CAN总线协议内容对应的协议解析结果。
需要说明的是,本发明实施例中的电子设备在具体实现时可以为服务器,也可以为PC机,还可以为其他设备,只要其结构中包括如图4所示的处理器401、通信接口402、存储器403和通信总线404,其中处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信,且处理器401可以调用存储器403中的逻辑指令以执行上述方法即可。本发明实施例不对电子设备的具体实现形式进行限定。
此外,上述的存储器403中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:
确定待解析的控制器局域网络CAN总线协议内容;
基于在CAN总线上进行的所述待解析的CAN总线协议内容对应的指定协议交互,获取用于协议解析的参照数据;
根据所述参照数据,通过线性拟合的方式确定所述待解析的CAN总线协议内容对应的协议解析结果。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种协议解析方法,其特征在于,包括:
确定待解析的控制器局域网络CAN总线协议内容;
基于在CAN总线上进行的所述待解析的CAN总线协议内容对应的指定协议交互,获取用于协议解析的参照数据;
根据所述参照数据,通过线性拟合的方式确定所述待解析的CAN总线协议内容对应的协议解析结果;
其中,根据所述参照数据,通过线性拟合的方式确定所述待解析的CAN总线协议内容对应的协议解析结果进一步包括:根据所述参照数据,通过线性拟合的方式对所述待解析的CAN总线协议内容进行验证,并计算拟合结果与所述待解析的CAN总线协议内容之间的标准差;
根据所述标准差确定所述待解析的CAN总线协议内容对应的协议解析结果;
将最小标准差对应的一组拟合点相关信息确定为所述待解析的CAN总线协议内容对应的协议解析结果。
2.根据权利要求1所述的协议解析方法,其特征在于,所述指定协议交互包括统一诊断服务UDS交互、和/或车载自动诊断系统OBD交互。
3.根据权利要求1所述的协议解析方法,其特征在于,所述基于在CAN总线上进行的所述待解析的CAN总线协议内容对应的指定协议交互,获取用于协议解析的参照数据,包括:
生成用于获取所述待解析的CAN总线协议内容的请求报文,并将所述请求报文发送到CAN总线上、以及接收所述请求报文对应的应答报文,直至接收到的应答报文数量达到指定数量时,停止发送所述请求报文;
对各个所述应答报文进行解析,得到用于指示所述待解析的CAN总线协议内容的状态数据,并将各个所述状态数据确定为所述参照数据。
4.根据权利要求3所述的协议解析方法,其特征在于,所述根据所述参照数据,通过线性拟合的方式对所述待解析的CAN总线协议内容进行验证,并计算拟合结果与所述待解析的CAN总线协议内容之间的标准差,包括:
统计接收到的CAN数据流量内的非诊断型ID号的集合;
遍历各个所述状态数据,根据所述状态数据对应的应答报文确定各个非诊断型ID号第一次出现的数据帧,并将所述状态数据和每个所述数据帧均分为一组,以及针对每组中的所述数据帧,按照相邻的指定字节数和指定字节端序进行字节组合,得到各个非诊断型ID号各自对应的一组拟合点;
对各组所述拟合点按照最小二乘法进行线性拟合,并计算拟合结果与所述待解析的CAN总线协议内容之间的标准差。
5.一种协议解析装置,其特征在于,包括:
确定模块,用于确定待解析的控制器局域网络CAN总线协议内容;
获取模块,用于基于在CAN总线上进行的所述待解析的CAN总线协议内容对应的指定协议交互,获取用于协议解析的参照数据;
解析模块,用于根据所述参照数据,通过线性拟合的方式确定所述待解析的CAN总线协议内容对应的协议解析结果;其中,根据所述参照数据,通过线性拟合的方式确定所述待解析的CAN总线协议内容对应的协议解析结果进一步包括:根据所述参照数据,通过线性拟合的方式对所述待解析的CAN总线协议内容进行验证,并计算拟合结果与所述待解析的CAN总线协议内容之间的标准差;根据所述标准差确定所述待解析的CAN总线协议内容对应的协议解析结果;将最小标准差对应的一组拟合点相关信息确定为所述待解析的CAN总线协议内容对应的协议解析结果。
6.根据权利要求5所述的协议解析装置,其特征在于,所述获取模块包括:
获取子模块,用于生成用于获取所述待解析的CAN总线协议内容的请求报文,并将所述请求报文发送到CAN总线上、以及接收所述请求报文对应的应答报文,直至接收到的应答报文数量达到指定数量时,停止发送所述请求报文;
解析子模块,用于对各个所述应答报文进行解析,得到用于指示所述待解析的CAN总线协议内容的状态数据,并将各个所述状态数据确定为所述参照数据。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述协议解析方法的步骤。
8.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至4任一项所述协议解析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911350703.6A CN111130937B (zh) | 2019-12-24 | 2019-12-24 | 协议解析方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911350703.6A CN111130937B (zh) | 2019-12-24 | 2019-12-24 | 协议解析方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111130937A CN111130937A (zh) | 2020-05-08 |
CN111130937B true CN111130937B (zh) | 2020-12-15 |
Family
ID=70502080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911350703.6A Active CN111130937B (zh) | 2019-12-24 | 2019-12-24 | 协议解析方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111130937B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022054038A1 (en) * | 2020-09-13 | 2022-03-17 | Enigmatos Ltd. | System and method for determining a code used in can bus messages |
CN112949258A (zh) * | 2021-02-25 | 2021-06-11 | 深圳市元征科技股份有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN114298135B (zh) * | 2021-11-11 | 2022-07-22 | 北京邮电大学 | 基于差分法的can数据逆向解析方法、装置及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103674027A (zh) * | 2013-12-10 | 2014-03-26 | 沈阳美行科技有限公司 | 一种基于车辆诊断接口为车载惯性导航提供信号的方法 |
CN104753850A (zh) * | 2013-12-25 | 2015-07-01 | 惠州市德赛西威汽车电子有限公司 | 总线应用协议分析方法 |
CN109981394A (zh) * | 2017-12-28 | 2019-07-05 | 沈阳新松机器人自动化股份有限公司 | 基于增强型can总线协议分析仪的通信方法和装置 |
CN110191021A (zh) * | 2019-05-29 | 2019-08-30 | 北京百度网讯科技有限公司 | 一种协议测试方法、装置、电子设备及存储介质 |
KR102041846B1 (ko) * | 2017-11-14 | 2019-12-10 | (주)세코인터페이스 | Obd-ⅱ를 활용한 차량 can 데이터 자동 수집 단말기와 수집 방법 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108173854B (zh) * | 2017-12-28 | 2020-12-29 | 广东电网有限责任公司东莞供电局 | 一种电力私有协议的安全监测方法 |
-
2019
- 2019-12-24 CN CN201911350703.6A patent/CN111130937B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103674027A (zh) * | 2013-12-10 | 2014-03-26 | 沈阳美行科技有限公司 | 一种基于车辆诊断接口为车载惯性导航提供信号的方法 |
CN104753850A (zh) * | 2013-12-25 | 2015-07-01 | 惠州市德赛西威汽车电子有限公司 | 总线应用协议分析方法 |
KR102041846B1 (ko) * | 2017-11-14 | 2019-12-10 | (주)세코인터페이스 | Obd-ⅱ를 활용한 차량 can 데이터 자동 수집 단말기와 수집 방법 |
CN109981394A (zh) * | 2017-12-28 | 2019-07-05 | 沈阳新松机器人自动化股份有限公司 | 基于增强型can总线协议分析仪的通信方法和装置 |
CN110191021A (zh) * | 2019-05-29 | 2019-08-30 | 北京百度网讯科技有限公司 | 一种协议测试方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
Calibration and its Use in Measuring Fuel Consumption with the CAN-Bus Network;Adam Polcar等;《ACTA UNIVERSITATIS AGRICULTURAE ET SILVICULTURAE MENDELIANAE BRUNENSIS》;20160131;第64卷(第2期);第503-507 * |
Also Published As
Publication number | Publication date |
---|---|
CN111130937A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111130937B (zh) | 协议解析方法、装置、电子设备及存储介质 | |
CN103581130B (zh) | 数据压缩处理方法、系统及装置 | |
CN105388893A (zh) | 一种基于obd接口的can通讯数据监测方法及系统 | |
CN106330483B (zh) | 信息获取方法、客户端设备和服务端设备 | |
CN112422557B (zh) | 一种工控网络的攻击测试方法及装置 | |
US8132182B2 (en) | Parallel processing of triggering rules in SIP event notification filters | |
CN102868693A (zh) | 针对http分片请求的url过滤方法及系统 | |
CN112887405B (zh) | 一种入侵防御方法、系统及相关设备 | |
CN111740952A (zh) | 一种车辆监管平台数据管理方法及系统 | |
CN112104596A (zh) | 一种聚合多种车联网通信协议的数据接入方法和系统 | |
CN114328482A (zh) | 数据处理方法、设备、存储介质及程序产品 | |
DE102014204589A1 (de) | Verfahren und vorrichtung zur einwilligungsabwicklung für einen transfer sicherer daten | |
CN107040613A (zh) | 一种报文传输方法及系统 | |
CN105635182B (zh) | 一种数据压缩传输方法及系统 | |
CN113645097A (zh) | 车辆信号监测方法、终端设备及电子控制单元 | |
CN111694990B (zh) | 车辆数据的处理方法、装置及存储介质 | |
CN108259284A (zh) | 一种可配置的车辆数据采集系统及解析方法 | |
CN111064729A (zh) | 报文的处理方法及装置、存储介质和电子装置 | |
CN109327404B (zh) | 基于朴素贝叶斯分类算法的p2p预测方法及系统、服务器及介质 | |
CN111741063A (zh) | 一种车辆监管平台数据接入处理方法及系统 | |
CN110740133A (zh) | 一种基于rtmp协议的网络投票和选举方法及系统 | |
CN113347195B (zh) | 一种物联网设备通信协议包动态挂载系统及方法 | |
CN111988343B (zh) | 一种远程设定规则并监测工业网络入侵的系统及方法 | |
CN111355787B (zh) | 信息传输方法、装置和电子设备 | |
Subke | Internationally standardized technology for the diagnostic communication of external test equipment with vehicle ECUs |
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 |