基于Vehicle SPY的汽车逆向工程

作者:罗伟光 陈秋苑 文章来源:广州虹科电子科技有限公司 发布时间:2013-03-19
分享到

针对竞争激烈的汽车后装市场,本文介绍了一种基于Vehicle SPY的汽车CAN网络的逆向工程,来提升企业的竞争力。通过Vehicle SPY特殊的显示方式,可以很清楚地发现汽车中变化的CAN报文,通过Details这一类功能,可以很快地破解出汽车CAN网络中一些常见的信号,如车速、门锁及车灯等。

汽车后装市场的技术门槛比较低,大部分企业普遍存在的一个问题就是技术含量比较低。娱乐系统、智能控制装置、底盘及发动机改装业务将出现在后装市场,而现在的底盘和发动机也都是通过CAN总线网络用ECU来控制的,要想改装底盘和发动机就必须获得一些相应的控制参数,但是后装市场的企业与整车厂没有合作关系,无法获得相关的CAN总线中CAN报文的参数。为了在残酷的市场做这方面的业务就必须获得这些参数,这就需要相关的总线破解工具,来进行汽车逆向工程开发。

Vehicle SPY作为一款非常强大的汽车测试工具,集成了网络监控、诊断、节点/ECU仿真、数据获取和记录分析及自动测试等功能,已被很好地应用于汽车逆向工程方面。

汽车逆向分析过程

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

这个过程中开始时选择好分析工具(Vehicle SPY)非常重要,对于验证和保存这一步,如果验证不对的话就需要重复筛选到验证这一个过程(见图1)。


图1 汽车逆向分析过程    

Vehicle SPY的逆向工程

基于Vehicle SPY的汽车逆向工程主要分为三个方面:特殊的报文显示方式、报文过滤和报文信号分析。

1. 特殊的报文显示方式

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

Vehicle SPY的基本显示模式分为两种:一是静态模式,这种模式显示所有已经出现过的报文;二是滚动模式,按照接收和发送的顺序显示报文。

(1)高亮显示

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

(2)区分颜色显示

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

2. 报文过滤方式

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

(1)报文视图列过滤器

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

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

二是采用输入区域。输入区域其实就是这个空白区域,在这里可以自由输入。在工作中,如果对于某条报文只知道其中一个数字、所处的ID范围或某个描述,都可以过滤出一个满足你要求的范围。如在ArbID/Header这一列下面输入3??,那么对应的会输出ID的第一位是3的报文。

(2)报文过滤栏过滤器

Vehicle SPY集成了很多标准的过滤器,只需要激活相应的过滤器就会按照设置过滤出对应的报文。激活过滤器时,在报文显示窗口就只会显示高速CAN这个网络的报文,单线CAN、J1850、发送的报文和错误的报文等过滤器也类似(见图4)。

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

3. 报文信号分析

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

(1)突出显示信号区域

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

(2)信号即时反馈

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

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

(3)使用数据点确定系数

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

(4)使用跟踪信号

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

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

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

4. Vehicle Spy的其他操作

(1)验证报文的正确性 在确定ID后,将这个ID的报文发送出去,以验证找到的报文是否正确。

(2)保存文件 报文视图中的所有报文都可以保存到csv文件中,这样就便于分析和存档。

(3)数据回放 可以将上面保存的csv文件通过Vehicle Spy回放,如果连接有相关CAN的硬件,也可以重新将这些报文发送出去。

结束语

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

收藏
赞一下
0