首页
社区
课程
招聘
[翻译]汽车CAN协议hacking
2016-5-9 21:23 34524

[翻译]汽车CAN协议hacking

gjden 活跃值
14
2016-5-9 21:23
34524
汽车CAN协议hacking

   

   以前翻译留存的一篇老文,讲汽车CAN协议的,hackaday的一篇文章,从盘里翻出来共享给大家,希望对初学者来有一定帮助。

   目录:

   

   我们介绍一个新的系列,那就是CAN和汽车hacking,首先我们介绍CAN协议并讨论汽车网络的工作原理。
   1986年,Bosch引入了控制局域网协议(the Controller Area Network protocol),这是专门为汽车内部各汽车ECUs之间的网络通信而设计的。CAN在汽车行业,工业,机器人应用的网络控制方向,成为一种非常受欢迎的选择。从2008开始,美国所有的出售的汽车都必须使用CAN协议。
   现代汽车是一种分布式控制系统,它包含一些列被设计来处理专门任务的ECUs。比如,车门控制模块管理门锁和门窗。CAN支持这些ECUs进行通信,通过链接到汽车内部网络,CAN也允许外部系统去执行诊断任务。
汽车中CAN通信的一些例子:
     *发动机控制模块发送当前发动机转速给仪表盘,仪表盘会显示当前的车速。
     *车门ECUs发送一个消息给另外一个车门ECUs来打开车窗。
     *通过诊断工具发送一个固件更新信息给ECUs来更新固件。
   CAN的使用通常很少被保证或者没有做安全保障,除了就让其隐没通信外。我们能够使用CAN转USB接口来监听通信数据,然后对其进行解码。我们也可以使用这些工具发送伪造的信息,或者执行诊断动作。不信的是,大部分处理CAN的工具都是专用的,并且非常昂贵。虽然诊断协议是标准的,但是却不是开放的,必须从国际化标准组件进行购买。
   具体内容看附件


[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
点赞2
打赏
分享
最新回复 (26)
雪    币: 32403
活跃值: (18850)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
kanxue 8 2016-5-9 22:36
2
0
辛苦,汽车普及了,大家以后可以多研究一下自家的汽车还是蛮有意思的。
雪    币: 347
活跃值: (934)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
EvilTobe 2016-5-10 10:30
3
0
赞一个!
雪    币: 206
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
baiyunbian 2016-5-10 10:34
4
0
这也算是个较新的领域了,有许多工作可做!
雪    币: 492
活跃值: (288)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
Tee8088 2 2016-5-11 09:06
5
0
坏的,都在为日汽车做准备。
雪    币: 216
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
Gkey 2016-5-11 09:33
6
0
感谢楼主分享~
雪    币: 212
活跃值: (75)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qenglish 2016-5-13 10:27
7
0
09年我在北京陪女友,见过一个专门调教ECU的人,在北京拥有两套房子。不到两年的时间。。
雪    币: 209
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
slsdz 2016-5-18 15:57
8
0
感谢分享,学习..
雪    币: 6782
活跃值: (4436)
能力值: (RANK:600 )
在线值:
发帖
回帖
粉丝
gjden 14 2016-5-18 16:14
9
0
这么吃香啊
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lolk 2016-5-19 13:34
10
0
下载学习,谢谢分享
雪    币: 209
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Jeller 2016-5-21 20:22
11
0
要是有修改里程数的部分就好了
雪    币: 413
活跃值: (341)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dongshan 2016-5-24 13:34
12
0
感觉文中有数处错误,有原文吗
1. can总线就是差分传输的, 文中所说的,用在汽车上的单线总线,叫做LIN总线。 文中把LIN总线也叫做can总线,这是不对的。

2. 接口一般是DB9接口,好像没有 DE9这种接口。

3. can总线的ID的作用是由用户自己定义的。

4. can总线类似于tcp/ip协议中的 传输层及以下层的一个协议, 在can之上还有一些应用层的协议,比如canopen等等, 这里的obd协议估计就是基于can总线的一个应用层的协议。
雪    币: 6782
活跃值: (4436)
能力值: (RANK:600 )
在线值:
发帖
回帖
粉丝
gjden 14 2016-5-24 19:24
13
0
感谢细读,并提出你的看法,对于你的问题,逐一做个回答:
1.can总线不只是差分的,差分只用于高速传输,还有单线CAN,用于低速传输。此外,该文章谈论是都是CAN协议的,并不是LIN,LIN和单线CAN是完全不同的,要注意的是LIN总线为单主机多从机系统,而CAN总线为多主机系统。此外,CAN使用的是11位或29位ID,LIN使用的是6位的ID,当然安全性也不是一个级别的。
2.好像文章中没有地方写的有DE9接口吧,没搜到
3.注意这里讲得是汽车的CAN总线,这里并不是说ID一定是固定的。文中列出那个表格是ODB-ii上层协议的服务ID,这个ID实际上是在CAN协议的数据区,就好像http头处在TCP的payload地方一样。
4.理解正确
此文中好像给了原文链接吧。
雪    币: 111
活跃值: (131)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bbbsl 2016-5-25 21:35
14
0
DE-9是第四部分组建硬件那出现的,看了下原文也是这么写的,怀疑是不是写错了,DB-9应该是串口,和OBD的16针接口还是有区别的,而且不是7个针和2个针,而是第7针脚和第二针脚

saleae logic那个是一款逻辑分析仪,估计楼主跟我差不多也是刚接触硬件
雪    币: 6782
活跃值: (4436)
能力值: (RANK:600 )
在线值:
发帖
回帖
粉丝
gjden 14 2016-5-25 22:38
15
0
首先感谢指正,然后该文前面已经说明了,以前翻译的老文,翻出来整理后分享的,由于没有做严格的校对,的确有不当之处感谢指出。

那个DB-9原文的确写的是DE-9,这点到没有注意,后面的引脚翻译的有问题,的确是第7针脚和第2针脚,原文:Unfortunately, there’s no set standard for CAN connections. The most common connector for high-speed CAN is a DE-9, with CAN high on pin 7 and CAN low on pin 2. However cables will differ, and many are incompatible.

至于saleae logic只是按原文翻译而已,都知道这是逻辑分析仪,对于硬件安全领域,你我都是新手,要学习的东西永远都学不完,所以大家多分享多交流,共同进步。
雪    币: 6782
活跃值: (4436)
能力值: (RANK:600 )
在线值:
发帖
回帖
粉丝
gjden 14 2016-5-31 13:39
16
0
咨询了一下原作者,DE-9的叫法是没有错的,DE-9是标准命名法,DB-9是习惯性错误的叫法,大家习惯了这种叫法,所以就将错就错了,比如RS232 9针也被习惯称为DB-9。D型接口按照接口数量细分为A型(15针),B型(25针),C型(37针),D型(50针),E型(9针),DE-9的说法反而才是正确的说法。
The DE-9 D-sub 9-pin connector is often mistakenly referred to as the "DB-9" connector.  The "E" refers to the shell size.  A "DB-25" connector has a "B" size shell, but the common nine-pin connector is smaller and has an "E" size shell.
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ORC丶谕言 2016-7-8 16:42
17
0
这个可以,正好需要学习CAN方面的知识
雪    币: 7
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zenghuang 2016-7-8 20:48
18
0
我们公司就是汽车诊断行业,这些协议都是家常便饭,任何工程师都知道,只是相对其他行业来讲比较稀奇。
看了下附件,只是冰山一角。不知道楼主是否在这个行业。
雪    币: 6782
活跃值: (4436)
能力值: (RANK:600 )
在线值:
发帖
回帖
粉丝
gjden 14 2016-7-11 16:50
19
0
角度不一样,诊断协议大部分是标准的,但是很多私有的非诊断协议还得靠自个逆向,特别是在攻入TBOX后,要想完全控制汽车就只能靠逆向CAN协议。
雪    币: 217
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
我是yoyo 2016-7-14 19:39
20
0
正在研究miller的文章,顶一个
雪    币: 230
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
小小雨爱笑 2016-8-5 08:26
21
0
正在学 看一下 感谢楼主
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
littleworm 2017-4-8 16:52
22
0
正在了解can呢      感谢分享
雪    币: 260
活跃值: (80)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
我的微笑 2017-11-15 15:33
23
0
下载看看,最近也在搞汽车逆向!比较有点难度!
雪    币: 217
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
我是yoyo 2017-12-3 20:01
24
0
一年了,我又来到了这个帖子,还是收货很大,感谢楼主
雪    币: 965
活跃值: (89)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ielts 2017-12-9 17:14
25
0
赞一个!
游客
登录 | 注册 方可回帖
返回