基于HK SPY的汽车逆向工程

作者:罗伟光,陈秋苑 文章来源:广州虹科电子科技有限公司 发布时间:2013-01-09
分享到
本文首先介绍了汽车后装市场的现状和发展趋势,然后介绍了一种基于HK SPY的汽车CAN网络的逆向工程,通过HK SPY特殊的显示方式,可以很清楚的发现汽车中变化的CAN报文,通过Details这一类功能,可以很容易的破解出汽车CAN网络中一些常见的信号,如车速、门锁、车灯等。

1 引言

1.1 汽车后装市场现状和发展趋势

汽车前装市场是中国汽车电子市场发展的主要推动力,但是中国汽车消费市场正在走向差异化和个性化,原厂配备的电子设备不能完全满足消费者的需求,同时电子产品后装市场价格远远低于前装,为后装市场的发展提供了巨大的市场需求[1]。据中国汽车工业协会发布的“2012年上半年汽车市场形势分析及市场预测”报告中指出:如果下半年宏观经济向好,经济发展增速回升,全年汽车销量有望达2000万辆,相比去年全年销量1850.51万辆,增长8%,这样中国的汽车保有量将达到约1.24亿辆,这就为后装市场的发展提供了广阔的增量空间。

中国汽车电子后装和改装市场目前主要集中在车载电子领域。汽车防盗、汽车音响(包括多媒体系统)和车载导航产品在目前后装和改装市场中拥有重要的市场份额,而随着技术越来越成熟,服务越来越完善,以及政府对汽车改装限制的放宽,汽车电子后装市场产品种类将不断丰富,底盘、发动机改装业务将出现在后装市场,将大大推动后装汽车市场的发展。

虽然发展空间很大,但是也存在很大的挑战,那就是竞争,汽车后装市场的竞争比前装市场激烈得多,因为汽车后装市场的技术门槛比较低,大部分企业普遍存在的一个问题就是技术含量比较低。正像上面说的一样,娱乐系统、智能控制装置、底盘、发动机改装业务将出现在后装市场,而现在的底盘和发动机也都是通过CAN总线网络用电控单元(ECU)来控制的,要想改装底盘和发动机就必须获得一些相应的控制参数,但是后装市场的企业与整车厂没有合作关系,无法获得相关的CAN总线

中CAN报文的参数。为了在残酷的市场要做这方面的业务又必须获得这些参数,这就需要相关的总线破解工具,专业点说就是汽车逆向工程。就目前市场上的这类工具来说,广州虹科的HK Spy无疑是最好用的一款。

1.2 汽车逆向分析过程

我认为汽车CAN网络逆向分析过程主要可以分为四个步骤:筛选、定位、破解、验证和保存。


图1 汽车逆向分析过程

如图1所示,这个过程中开始主要是要选择好分析工具(HK SPY),验证和保存这一步如果验证不对的话就需要重复筛选到验证这一个过程。

2 HK SPY简介

HK SPY是一款非常强大的汽车测试工具,其主要功能有:

网络监控

网络、节点仿真、模拟

DBC数据库建立,修改

CCP/XCP标,Asap2 editor

ISO14229,KW2000诊断、数据记录

ECU程序刷新

可见HK SPY集成了网络监控、诊断、节点/ECU仿真、数据获取和记录分析、自动测试等功能,但是本文主要讲的是破解汽车CAN总线(在HK SPY中称为逆向工程),所以本文的焦点在于逆向工程方面。

HK SPY的报文界面能让用户同时查看、筛选、分类、定制和记录多种总线网络的信号和报文。特别是其自动的报文高亮显示能准确清晰的指示车辆总线上正在变化的数据,且显示的颜色也可以自己设置。一般的网络报文监视软件都是文本式的显示,要查找变化的报文很费劲,而HK SPY的这些特性就使得对于总线的逆向分析和破解工作简单了很多。

找到对应的变化报文后,对于一些比较复杂的数据还是难以判断出某个报文的具体哪几个位表示的是我们想要知道的信号,HK SPY提供的Details功能可以很好的解决这个问题。

3 HK SPY的逆向工程

这一部分主要从特殊的报文显示方式、报文过滤、报文信号分析三个方面讲述基于HK SPY的逆向工程。

报文显示方式:帮助你快速的缩小想要破解的报文的范围;

报文过滤方式:帮助你快速定位到想要破解的报文;

报文信号分析:帮助你快速破解出想要得到的信号。

3.1特殊的报文显示方式

HK SPY的报文显示方式主要可以分为高亮显示,区别颜色显示等(图2)。


图2 报文显示方式

HK SPY的基本显示模式分为两种:一是静态模式,这种模式显示所有已经出现过的报文;二是滚

动模式,按照接收和发送的顺序显示报文[2]。

3.1.1 高亮显示

在主显示区,单击任何一行都会以绿色显示,高亮显示有助于指出变化的数据。灰色表示变化“快”的数据(变化时间小于1s);蓝色表示变化“慢”的数据(变化时间大于1s);停止变化的数据则会逐渐的从高亮灰色变为白色。当然如果当前高亮的数据里面没有你感兴趣的,也可以通过点击一个按钮来抑制这种高亮。还有一些其它的相关显示方式:

(1)高亮变化:将没有变化的数据变为灰色,只有当报文的数据开始变化的时候才会变为正常的颜色。这个特性的目的在于突出显示变化的报文。

(2)突出最近的:设置一个最近的时间点,在这个时间点之内的报文正常显示,其它的变暗。

(3)模板模式:使能这个功能后可以快速的将一个ID的报文改变到另外一个ID的报文中去。这个功能对于知道报文的译码却不知道具体的ID时是非常有用的。

(4)改变高亮样式:根据变化强度和变化梯度可以设置在改变多少数据字节之后再让它高亮。这个功能有助于确定改变的速率有多快的数据。

3.2.2 区分颜色显示

通过对报文操作,可以将接收到的所有报文都添加到在报文编辑窗口中的接收报文这一栏下,这样在这里可以设置每个接收到的报文的颜色,再次监控的时候这些报文就会按照设置的颜色显示,且上面提到的高亮设置也不会引起颜色变化。

3.2报文过滤方式

HK SPY提供了两种报文过滤方式:一个是报文视图列过滤器;一个是报文过滤栏过滤器。各有特点,重点是可以互相配合使用。

3.2.1 报文视图列过滤器

HK SPY报文显示窗口的每一列都有一个列过滤器并且多个列可以同时进行过滤。这对于很多报文的情况下对报文进行筛选和排序非常有用。这个过滤器也支持两种过滤方式(图3):


图3 报文视图列过滤器

一是采用下拉列表。双击每一列的空白区域,都会弹出相应的下拉列表,这个下拉列表中包括这一列的所有信息,所以在这里可以选择感兴趣的内容。

二是采用输入区域。输入区域其实就是这个空白区域,在这里可以自由输入。在工作中,如果对于某条报文只知道其中一个数字,或者只知道所处的ID范围,或者只知道某个描述,都可以过滤出一个满足你要求的范围。如在ArbID/Header这一列下面输入3??,那么对应的会输出ID的第一位是3的报文;如输入100—400,就会过滤出这个ID范围内的报文;如果输入323,129就是说用逗号隔开,就会过滤出这两个ID的报文。这些操作方式也适用于其它列。

3.2.2 报文过滤栏过滤器

HK SPY集成了很多标准的过滤器,只需要激活相应的过滤器就会按照设置过滤出对应的报文。如图4中的HS CAN这个过滤器,如果激活这个过滤器,那么在报文显示窗口就只会显示高速CAN这个网络的报文,下面其它的如单线CAN、J1850、发送的报文、错误的报文等过滤器也类似。


图4 过滤器栏

另外也可以自定义过滤器,可以将毫不相关的各种报文信息等包含在一起,也可以将不感兴趣的报文直接排出在外。

3.3报文信号分析

通过前面描述的功能定位好ID后,选择这个ID,使用Details功能可以帮助解码CAN报文为具体的信号。

(1)突出显示信号区域(图5)。选择的ID对应的字节在这里显示,Bytes表示各个字节的值,Bits表示各个位的值,如果需要破解的是数字量,那么这里可以非常清楚的看到各个位的变化,很容易识别出数字量。


图5 信号字节显示区域

(2)信号即时反馈(图6)。如果需要破解的信号是模拟量,那么在上面的信号字节显示区域一般要选择8位或者16位的数据长度,而旁边的信号图就会将二进制转换为十进制的数值,调整数据的位置,信号图中的数值也会跟着变化。


图6 显示解码信息的信号图

信号图中可以很直观的看到当前信号的变化趋势和规律等,这样对于已知变化规律的信号的判断是非常有用的。这个功能的作用就是找出符合规律的数据字节。

(3)使用数据点确定系数(图7)。模拟量信号与直接解码出来的十进制数值一般都有一定的函数关系。这个功能的作用是在你确定两个数据点之后,软件会自动确定最佳的系数(比例因子和偏移量)。


图7 使用数据点确定系数

(4)使用跟踪信号。这里的跟踪信号主要是起对比的作用。这个的典型应用就是使用一个已知报文的信号来解码一个正常模式下的报文的未知信号。

设置一个跟踪信号,这个跟踪信号会显示在信号图中,这样在信号图中就有跟踪信号和未知信号两个信号的图像,跟踪信号的图像对于未知信号来说是一个很好的参照。

最后,在确定好之后可以直接将该ID的报文和信号设置添加到报文编辑窗口接收项里面,然后就可以导出为标准的dbc文件,并可将该dbc文件导入到其它软件中使用。

4 HK SPY的其它操作

(1)验证报文的正确性。在确定ID后,也可以直接将报文视图中选择的ID 连同数据一起拷贝到报文编辑窗口中的发送项,再将这个ID的报文发送出去,以验证找到的报文是否正确。

(2)保存文件。报文视图中的所有报文都可以保存到csv文件中,当然也可以只保存过滤器过滤出来的报文,如只保存发送出去的报文。这样就便于分析和存档。

(3)数据回放。可以将上面保存的csv文件通过HK SPY回放,如果连接有相关CAN的硬件,也

可以按照保存的报文的时间顺序,重新将这些报文发送出去。

5 结束语

本文详细描述了使用HK SPY进行汽车的逆向的分析的过程,经过筛选报文、过滤和定位报文、破解报文信号等几个步骤,可以帮助工程师极大的提高破解的工作效率。

注:HK SPY为广州虹科订货号而非产品名称。如有疑问,欢迎随时咨询support@hkaco.com,400-999-3848。

参考文献

[1]http://www.motorlink.cn/html/marketInfo/10000123dccb20c52009092410181862_3.html

[2]HK SPY Help file.

作者简介

罗伟光,助理工程师,广州虹科电子科技有限公司。

收藏
赞一下
0