欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

[黑客翻译] 汽车黑客,第二部分:CAN-utils 或 SocketCAN

最编程 2024-04-21 22:33:16
...

原文地址:www.hackers-arise.com/post/2017/0…

原文作者:

发布时间:2017年8月8日

欢迎回来,我有抱负的汽车黑客!

现在我们已经介绍了汽车中最常用的协议,即控制器区域网络或CAN,我们现在可以开始安装can-utils了。can-utils是一套Linux专用的工具,使Linux能够与汽车上的CAN网络进行通信。通过这种方式,我们可以嗅探、欺骗和创建我们自己的CAN数据包,从而骗过车辆!

image.png

什么是can-utils?

CAN是一个为车辆设计的基于消息的网络协议。 最初是由罗伯特-博世公司创造的,他们也是开发CAN协议的人。此外,SocketCAN是一套开源的CAN驱动和网络堆栈,由大众汽车研究院贡献给Linux内核。

步骤#1:安装can-utils

如果你使用Kali或其他基于Debian的软件库,你可以用apt-get下载并安装can-utils。

kali > apt-get install can-utils

image.png

image.png

如果你没有使用 Kali 仓库或任何没有 can-utils 的仓库,你可以随时使用 git clone 命令从 github.com 下载 can-utils。

kali > git clone github.com/linux-can/c…

can-utils的基础知识

CAN实用程序是用于从Linux操作系统中处理车辆内的CAN通信的工具。这些工具可以被分为几个功能组。

  1. 显示、记录、生成和播放CAN通信的基本工具
  2. 通过IP套接字访问CAN
  3. CAN内核网关的配置
  4. CAN总线测量
  5. ISO-TP工具
  6. 日志文件转换器
  7. 串行线纪律(slc)配置

最初,我们将只关注基本工具和日志文件转换器。

关于can-utils中的工具及其功能的完整列表,见下表。


  1. 显示、记录、生成和回放CAN流量的基本工具
  • candump:显示、过滤和记录CAN数据到文件中
  • canplayer:重放CAN日志文件
  • cansend:发送一个单帧
  • cangen:生成(随机)CAN流量
  • cansniffer:显示CAN数据内容的差异(只是11位CAN ID)。
  1. 通过IP套接字访问CAN
  • canlogserver:记录来自远程/本地主机的CAN帧
  • bcmserver:交互式BCM配置(远程/本地)。
  • socketcand:通过TCP/IP套接字使用RAW/BCM/ISO-TP套接字。
  1. CAN内核网关配置
  • cangw : 用于网络链接配置的CAN网关用户空间工具
  1. CAN总线测量和测试
  • canbusload : 计算和显示CAN总线负载
  • can-calc-bit-timing : 内核比特率计算的用户空间版本
  • canfdtest:全双工测试程序(DUT和主机部分)。
  1. 用于Linux的ISO-TP工具ISO15765-2:2016
  • isotpsend : 发送一个单一的ISO-TP PDU
  • isotprecv:接收ISO-TP PDU(s)。
  • isotpsniffer : "窃听 "ISO-TP PDU(s)
  • isotpdump:"窃听 "和解释CAN消息(CAN_RAW)。
  • isotpserver:用于简单的TCP/IP <-> ISO 15765-2桥接的IP服务器(ASCII HEX)。
  • isotpperf : ISO15765-2协议性能可视化
  • isotptun : 通过ISO-TP在CAN上创建一个双向的IP隧道
  1. 日志文件转换器 asc2log : 将ASC日志文件转换为紧凑的CAN框架日志文件
    log2asc : 将紧凑的CAN框架日志文件转换为ASC日志文件
    log2long : 将紧凑的CAN帧表示法转换为用户可读的。

  2. 串行线路纪律配置(用于slcan驱动)。 slcan_attach : 用于串行线CAN接口配置的用户空间工具
    slcand : 用于串行线CAN接口配置的守护程序
    slcanpty:为使用slcan ASCII协议的应用程序创建一个pty。


设置一个虚拟的CAN网络

在本系列的下一篇文章中,我们将用各种硬件设备连接到你的车辆中的CAN网络。这些都是相对便宜的(10-20美元),我强烈建议你购买一个,如果你想掌握汽车黑客技术。如果你不能或不愿购买这些硬件设备,你总是可以建立一个虚拟的CAN网络。

要建立一个虚拟的CAN网络。

首先,加载vcan(虚拟CAN)模块。

kali > modprobe vcan

然后,设置好你的虚拟接口。

kali > ip link add dev can0 type vcan

kali > ip link set up vcan0

image.png

一旦我们建立了我们的虚拟CAN连接(vcan0),我们就可以通过使用ifconfig命令来测试它是否正常,就像我们在Linux中使用其他接口一样。

kali > ifconfig vcan0

image.png

现在,我们已经准备好开始CAN通信的工作了。我们现在只需要把我们的Linux操作系统连接到车辆上。有许多设备、手段和连接类型可以做到这一点。我们将在本系列的下一篇文章中探讨其中的一些问题,所以请继续回来。

请关注我即将推出的关于汽车黑客的课程。


www.deepl.com 翻译

推荐阅读