# CanLab CAN 总线逆向分析工作站

> 用于离线逆向分析 CAN 总线抓包的 PyQt6 桌面工作站及命令行工具。它可读取 SavvyCAN/GVRET CSV、candump、pcap、Vector BLF/ASC、MDF4 和 openpilot 日志，进而提示计数器、校验和及其算法、字节角色、标志位、多路复用器、基于熵的字段边界和跨 ID 相关性，解码 J1939 与 NMEA 2000 PGN，并重组多帧报文。基于 cantools 的 DBC 构建器会用抓取的帧核对信号定义，可导出 DBC、openpilot DBC、CANdb++、ARXML 和 Wireshark Lua 解析器；可选的 MCP 服务器向 AI 助手提供 29 个只接收、不发送的分析工具。

- 类型：工具
- 目标：协议
- 类别：协议分析工具
- 关联：基础工具
- 来源复核于：2026-10-27
- 收录于：2026-11-03
- 原始资源：<https://github.com/Sherin-SEF-AI/CanLab>
- 一手来源：<https://github.com/Sherin-SEF-AI/CanLab/blob/8aaa6fff2bdfb1099574661c415a7d07a3a6a3de/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/canlab/>
- 记录 JSON：<https://awesomerea.org/resources/canlab/record.json>
- 英文版：[English](https://awesomerea.org/resources/canlab/index.md)

## 使用条件与局限

- README 称 CanLab 是单人开发的测试版项目。所审阅的提交 8aaa6ff（2026-09-23）在 pyproject.toml 中声明版本 2.1.0，而最新发布版本为 v2.0.0（2026-09-15），附 Linux x86_64 构建和演示视频。README 强调分析方法属于启发式，只提示候选结果而非确认信号，且尚未在大量真实车辆上验证。
- 需要 Linux、macOS 或 Windows 上的 Python 3.11+（开发使用 3.12），AI、REST、MCP、硬件适配器、MDF4（asammdf）和 openpilot 日志（pycapnp）为可选扩展；README 要求 4 GB 内存，机器学习功能建议 8 GB。实时采集可使用 SocketCAN、comma.ai Panda、GVRET 板卡或 python-can 适配器；README 称只用过一款实体适配器 CANalyst-II，其余仅在虚拟总线上验证。
- 分析对象是使用者自己的抓包。附带的样例是由脚本生成的合成 Hyundai 风格抓包，测试夹具每个只有几行；真实数据验收测试会下载 SavvyCAN、CSS Electronics 和 comma.ai 公开的记录，而不是把它们提交进仓库。opendbc 匹配功能首次使用时下载 commaai/opendbc 索引；可选的 AI 分析会把所选 ID 的帧统计发送给配置的 Anthropic、OpenAI、Groq 或 Ollama 服务。
- 该应用还具备仅限台架使用的发送功能，受默认关闭的全局 ARM TX 开关和屏蔽 ID 列表约束；README 限定只能在隔离的台架环境中使用。MCP 工具无法发送报文。
- README 的测试部分报告 753 个 pytest 测试通过（徽章仍写 578），另有与 can-isotp、udsoncan 和 can-j1939 的互操作测试，以及针对公开真实记录的 99 项检查；诊断请求只在脚本模拟的应答端上测试过。采用 MIT 许可证；NMEA 2000 表源自 CANboat（Apache-2.0），cereal 模式定义来自 comma.ai（MIT）。

## 一手来源

1. <https://github.com/Sherin-SEF-AI/CanLab/blob/8aaa6fff2bdfb1099574661c415a7d07a3a6a3de/README.md>
2. <https://github.com/Sherin-SEF-AI/CanLab/blob/8aaa6fff2bdfb1099574661c415a7d07a3a6a3de/pyproject.toml>
3. <https://github.com/Sherin-SEF-AI/CanLab/blob/8aaa6fff2bdfb1099574661c415a7d07a3a6a3de/tests/real_data/README.md>
4. <https://github.com/Sherin-SEF-AI/CanLab/blob/8aaa6fff2bdfb1099574661c415a7d07a3a6a3de/canlab/sample_data/generate_sample.py>
5. <https://github.com/Sherin-SEF-AI/CanLab/blob/8aaa6fff2bdfb1099574661c415a7d07a3a6a3de/canlab/core/data/CANBOAT-NOTICE.txt>
6. <https://github.com/Sherin-SEF-AI/CanLab/blob/8aaa6fff2bdfb1099574661c415a7d07a3a6a3de/canlab/core/data/cereal/NOTICE.txt>
7. <https://github.com/Sherin-SEF-AI/CanLab/blob/8aaa6fff2bdfb1099574661c415a7d07a3a6a3de/LICENSE>
8. <https://github.com/Sherin-SEF-AI/CanLab/releases/tag/v2.0.0>

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

- [Facedancer USB 设备仿真与代理库](https://awesomerea.org/zh/resources/facedancer/index.md) · 工具
- [Mirage 无线通信分析框架](https://awesomerea.org/zh/resources/mirage-wireless-framework/index.md) · 工具
- [Protobuf Decoder 无定义 Protobuf 网页解码器](https://awesomerea.org/zh/resources/pawitp-protobuf-decoder/index.md) · 工具
- [gr-lora LoRa 物理层解码模块](https://awesomerea.org/zh/resources/gr-lora/index.md) · 工具
- [termshark tshark 终端界面](https://awesomerea.org/zh/resources/termshark/index.md) · 工具
- [SigDigger 数字信号分析器](https://awesomerea.org/zh/resources/sigdigger/index.md) · 工具

## 关于此条目

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