工具

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 个只接收、不发送的分析工具。

目标
协议
类别
协议分析工具
关联
基础工具
来源复核于

使用条件与局限

  • 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. README.md GitHub · Sherin-SEF-AI/CanLab · 修订 8aaa6ff
  2. pyproject.toml GitHub · Sherin-SEF-AI/CanLab · 修订 8aaa6ff
  3. tests/real_data/README.md GitHub · Sherin-SEF-AI/CanLab · 修订 8aaa6ff
  4. canlab/sample_data/generate_sample.py GitHub · Sherin-SEF-AI/CanLab · 修订 8aaa6ff
  5. canlab/core/data/CANBOAT-NOTICE.txt GitHub · Sherin-SEF-AI/CanLab · 修订 8aaa6ff
  6. canlab/core/data/cereal/NOTICE.txt GitHub · Sherin-SEF-AI/CanLab · 修订 8aaa6ff
  7. LICENSE GitHub · Sherin-SEF-AI/CanLab · 修订 8aaa6ff
  8. https://github.com/Sherin-SEF-AI/CanLab/releases/tag/v2.0.0

同分区更多条目:协议

协议分区全部 66 项资源