# CAN 负载自动逆向分析流水线

> 一组研究用途的 Python 和 R 脚本，用于自动逆向分析从乘用车采集的控制器局域网（CAN）报文负载，实现了 Brent Stone 在 AFIT 的博士论文所述的流水线。Python 流水线先把 CAN 日志预处理为按仲裁 ID 组织的数据框，提取公开的 SAE J1979 诊断数据，再通过词法分析推测各信号时间序列的边界，随后通过语义分析构建相关性矩阵并对相关信号做层次聚类，输出图表和树状聚类图。另一组 R 脚本调用 rEDM 经验动力学建模包，对发动机转速、刹车压力和车速时间序列分析因果关系。

- 类型：工具
- 目标：协议
- 类别：协议分析工具
- 关联：基础工具
- 来源复核于：2026-10-20
- 收录于：2026-11-02
- 原始资源：<https://github.com/brent-stone/CAN_Reverse_Engineering>
- 一手来源：<https://github.com/brent-stone/CAN_Reverse_Engineering/blob/096dfe828a54964a10d2967fc65bf7c6537761a0/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/can-reverse-engineering/>
- 记录 JSON：<https://awesomerea.org/resources/can-reverse-engineering/record.json>
- 英文版：[English](https://awesomerea.org/resources/can-reverse-engineering/index.md)

## 使用条件与局限

- 这是论文研究代码，没有发布版或标签；所审阅的提交日期为 2022-02-01。README 称脚本在 Python 3.6 上开发和测试，需要 requirements.txt 中列出的 NumPy、Pandas、scikit-learn 和（用于绘图的）matplotlib；R 脚本需要安装了 rEDM 包的 R 环境。没有打包或安装步骤，README 也说明克隆后脚本无法立即运行。
- 两个 Python 文件夹实现同一套思路：Pipeline 是由 Main.py 驱动的基础单文件版本，Pipeline_multi-file 是更完整的批处理版本，README 称其中包含未回移到 Pipeline 的缺陷修复。输入为随附 loggerProgram0.log 所示的 delta 时间/ID/DLC/十六进制格式 CAN 采集；2020 年 4 月新增可通过 -c/--can-utils 参数读取 can-utils 日志格式，其他格式需修改 PreProcessor.py。
- 使用者需自备 CAN 采集数据。仓库附带作者自有的示例数据：loggerProgram0.log 车辆采集、示例流水线输出、一份 OBD2 PID 表，以及 R 文件夹中不同驾驶条件下发动机转速、刹车压力和车速的 CSV 时间序列，另含作者的博士论文 PDF。其结果是信号边界和聚类的估计值，需要分析者验证，而非已确认的信号定义。
- 仓库包含 GPL-3.0 许可证文件，而 README 声明该代码属于美国政府作品，在美国不受版权保护，并已获准公开发布（案号 88ABW-2019-0910）。脚本读取被动日志、仅做分析，未描述任何设备交互或帧发送。

## 一手来源

1. <https://github.com/brent-stone/CAN_Reverse_Engineering/blob/096dfe828a54964a10d2967fc65bf7c6537761a0/README.md>
2. <https://github.com/brent-stone/CAN_Reverse_Engineering/blob/096dfe828a54964a10d2967fc65bf7c6537761a0/requirements.txt>
3. <https://github.com/brent-stone/CAN_Reverse_Engineering/tree/096dfe828a54964a10d2967fc65bf7c6537761a0/Pipeline>
4. <https://github.com/brent-stone/CAN_Reverse_Engineering/tree/096dfe828a54964a10d2967fc65bf7c6537761a0/Pipeline_multi-file>
5. <https://github.com/brent-stone/CAN_Reverse_Engineering/tree/096dfe828a54964a10d2967fc65bf7c6537761a0/R>
6. <https://github.com/brent-stone/CAN_Reverse_Engineering/blob/096dfe828a54964a10d2967fc65bf7c6537761a0/LICENSE>

## 同分区更多条目：协议

- [Deluder 应用流量拦截工具](https://awesomerea.org/zh/resources/deluder/index.md) · 工具
- [PiCCANTE 树莓派 Pico 车辆 CAN 总线工具](https://awesomerea.org/zh/resources/piccante/index.md) · 工具
- [VanBus PSA VAN 总线收发库](https://awesomerea.org/zh/resources/vanbus/index.md) · 工具
- [Apple Continuity 逆向工程工具包](https://awesomerea.org/zh/resources/apple-continuity-tools/index.md) · 工具
- [Cabana CAN 总线分析工具（独立版 openpilot-cabana）](https://awesomerea.org/zh/resources/openpilot-cabana/index.md) · 工具
- [eCapture eBPF TLS 明文捕获工具](https://awesomerea.org/zh/resources/ecapture/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
