如果你已完成本节中的所有教程,并正在寻找新的内容,可以尝试挑战 CTF 训练页面中的题目,或者重温过去包含 RAMN 的专业 CTF 比赛(CTF 解题报告 )。
虽然你可以将 ECU A 用作 USB 转 CAN 适配器,但你可能更倾向于使用外部 CAN 适配器以及配套的分析工具套件。例如,你可以将 BUSMASTER 与 PCAN-USB 配合使用。这些工具通常允许你加载一个数据库文件(“DBC 文件”),该文件指定了 CAN 帧中每个比特所代表的具体含义。
RAMN 的“DBC”和“DBF”文件位于 misc 文件夹中。您可以使用这些文件来帮助分析 RAMN 的默认信号。
例如,借助 BUSMASTER 和兼容的外部适配器,您可以选择“数据库 -> 关联”,并加载 .DBF 文件。

这将允许您用助记符替换 CAN 标识符和有效载荷,如下所示。


这将使您能够记录并显示在 CAN 总线上观察到的数值图表。

RAMN 的 GitHub 仓库中提供了一个 PID 控制示例 ,该示例在 RAMN ECU 上以闭环方式与驾驶模拟器(参见 CARLA)协同实现。
其他 CAN 软件工具也可用于与 RAMN 的 ECU 进行交互。
例如,Caring Caribou 提供了多种与 UDS 和 XCP 交互的功能。请按照此处的说明进行安装:
然后,在您的主目录中创建一个 .canrc 文件(可使用 nano ~/.canrc),并添加以下内容:
如果您需要以 root 用户身份执行,应改在 /root/.canrc 中创建 .canrc 文件。
之后您应该能够使用 caring caribou 的模块。
你可以使用发现模块来确定 RAMN 的 ECU 所使用的 CAN ID。

你可以使用“services”模块来查看 ECU B 支持哪些服务:
在另一个窗口中,你可以使用 isotpdump can0 -s 7e1 -d 7e9 -c -u 来观察流量。

您可以使用以下命令读取 ECU B 的所有可能的 DID:
如果遇到错误,请尝试执行 sudo ifconfig can0 txqueuelen 10000 。

请参考帮助页面,了解如何使用 Caring Caribou 的 XCP 模块:
您可以使用发现模块扫描 XCP 对(自动黑名单选项会先监听流量,以避免误报):
您可以向 ECU 查询其基本信息,例如针对 ECU B:
在另一个窗口中,使用 candump can0,552:7fe 来观察 XCP 流量。
你可以尝试使用 XCP 转储 ECU B 固件的前 256 字节,命令如下:
对于 CTF 和其他高级 CAN 活动,你可以使用 python-can 来自动化 CAN 通信。
python-can 可用于直接在 CAN 层上自动化帧的传输。你可以在这里找到一系列示例。示例 send_one.py 将向你展示如何简单地发送一条 CAN 消息,receive_all.py 将展示如何接收 CAN 消息,而 asyncio_demo.py 则会演示如何将 CAN 消息的接收与发送关联起来。
同样地,can-isotp 可用于自动化 ISO-TP 消息的传输。有关示例,请参阅其 文档 。
最后,udsoncan 可用于 UDS 通信交换。