当前位置: 首页 > news >正文

OBD_Test_ToolKit — 车载 UDS / OBD-II 渗透测试工具箱:12 阶段覆盖 + 自动判定 HTML 报告(Web UI + TSMaster)

[AI 整理声明]本文基于作者的项目文档与开发实践,由 AI 辅助整理输出,核心内容与数据均来自作者本人。


目录

    • 设计取舍
    • 安装
    • 12 个阶段
    • 情报库
    • 报告
    • 红线
    • 注意

做车辆诊断安全评估的时候,测试流程往往是分散的——ECU 扫描用一个脚本,SecAccess 枚举用另一个,日志各存各的,最后拼报告又是一套工序。OBD_Test_ToolKit 是把这套流程系统化的工具箱:12 个渗透阶段对应 12 张 Web 页面,每阶段的输出以 JSON 落进"情报库",最终一键出可交付的 HTML 审计报告。

  • GitHub:https://github.com/cstriker1407/OBD_Test_ToolKit

设计取舍

Python 侧零总线 I/O——不依赖python-can,不开 PCAN / Vector / Kvaser 设备,不发一个 CAN 帧。总线 I/O 全部交给TSMaster IDE及其 C++ MiniProgram 完成:

Web UI (Flask) ↓ 生成 phase_inputs.h TSMaster MiniProgram (12 × .cpp) ↓ 输出 .blf + .txt 日志 Web UI ↓ 上传 .txt → 解析 → intel/*.json Verdict 引擎 + Jinja2 ↓ HTML 报告

好处:换硬件不改 Python 代码;日志文件本身是取证证据,随时可回放重新解析;误 kill Web 进程不会让攻击流量卡在总线上。

代价是需要一份TSMaster IDE(TOSUN 官方免费下载)作为运行时。


安装

gitclone https://github.com/cstriker1407/OBD_Test_ToolKit.gitcdOBD_Test_ToolKit python-mvenv .venv .venv\Scripts\activate# Windows# source .venv/bin/activate # Linux/macOSpipinstall-rrequirements.txt python web/app.py# http://localhost:8081

TSMaster 侧首次配置:

# 用 TSMaster IDE 打开tsmaster\.TSProj# 修改共享头后同步 12 个 .cpppython tsmaster\inline_common.py

新项目直接复制整个目录——intel/*.json是全部状态,天然是"项目文件夹"。


12 个阶段

首页 12 张阶段卡片,每张显示完成度与快捷入口:

阶段关键动作输出
01 接入与拓扑发现11-bit / 29-bit / J1939 全段 ECU 扫描ecus.json
02 协议合规性扫描OBD-II Mode 1-10 + UDS SID 全量探测sid_matrix.json
03 会话状态机分析Session 0x01-0x7F 枚举 + S3 timer 实测sessions.json
04 SecAccess 安全访问Level 枚举 / seed 熵分析 / lockout 检测secaccess.json
05 DID 读取防护广播 vs 直接寻址暴露面对比did_exposure.json
06 DID 写入防护Read-then-write-same 探测did_write.json
07 内存读写防护SID 0x23/0x3D 可达性、ALFID 边界memory.json
08 DTC 故障诊断SID 0x19 多 sub 覆盖 + ClearDTCdtc.json
09 例程控制SID 0x31 危险 routine 黑名单枚举routines.json
10 固件刷写攻击面Programming Session 门槛 + 0x34/35/36 可达性flash.json
11 网关与跨子网网关识别 + 广播 / 直连过滤差异gateway.json
12 Fuzz(可选)SID 参数 / 多帧序列 / 时序 fuzzfuzz.json

单个阶段页的操作流程:说明 → 生成 TSMaster 输入 → 上传日志 → 解析后回显结构化数据:


情报库

每个阶段的结果以 JSON 写入intel/目录,Web UI 提供两个汇总视图。

ECU 清单(Phase 01 自动写入,可手工微调 identity / 寻址方式 / 填充字节)和诊断服务矩阵(按 ECU × SID 展示每个服务的可达性):


报告

12 阶段跑完后POST /report,verdict 引擎对intel/*.json应用内置规则(ISO 14229 / GB 44495-2024 / ISO 21434 常见基线),输出 finding + verdict(通过 / 不通过 / 严重不通过),Jinja2 渲染成单文件 HTML,全部内联样式,可离线归档 / 邮件转发:

报告页提供在线预览、下载、归档、清空测试数据(保留项目信息 / ECU 清单 / 红线)几个操作,各自独立互不影响。


红线

intel/red_lines.json是安全护栏——绝对不测的 SID、不写的 DID、不启动的 routine、危险内存段,UI 直接编辑,有"恢复默认"按钮:

跑真车前一定要检查这个文件,特别是 OEM 私有的危险 routine ID 需要手工补进去。


注意

本工具是主动式渗透测试工具,会向 ECU 发送变形 / 不合规 / 高频诊断请求。

  • 严禁对上路 / 载人 / 行驶中的车辆运行任何阶段
  • Phase 04(SecAccess 枚举)可能触发 ECU 永久 lockout,部分 ECU 要拆下来重刷 boot 才能恢复
  • Phase 07(内存读写)任何操作都可能砖 ECU,红线覆盖不了所有 MCU 特殊寄存器
  • Phase 10 / 12(固件刷写 / Fuzz)在任何非授权车辆上运行都可能构成犯罪
  • 仅限持有测试对象合法所有权或 OEM 明确书面授权的场景使用

当前版本 beta,MIT 开源。

http://www.jsqmd.com/news/1240565/

相关文章:

  • C++多核编程实战:从并行算法到性能优化指南
  • Java 求职面试:Spring Boot 与微服务在电商场景中的应用
  • 想找市面上热门的长兴县别墅大门品牌?哪家才是最佳之选? - 热点速览
  • Python + Jinja2 + WeasyPrint 实现品牌AI可见度报告自动生成:模板设计、数据聚合与PDF输出
  • 企业数字化转型如何通过AI智播系统实现成本控制?——从行业痛点看老牌服务商的降本之道
  • 2026 藏不住了!昆明官渡这家包包回收店火了,爱马仕瑟琳戈雅报价高到离谱! - 融媒生活
  • 闲置黄金出手不踩坑!郑州足金铂金回收避坑全攻略,XRF光谱无损检测报价公道 - 奢侈品回收知识分享
  • 重磅|2026浪琴**售后网点新址公布最新专线同步开通 - 浪琴中国服务中心
  • 从 Chat Completions 迁到 Responses API,发布前至少做这 7 个验收
  • Windows隐藏效率神器:上帝模式、剪贴板历史、虚拟桌面与存储感知
  • Power BI种关于商机首次下单日期的确定
  • Django+Xadmin在线教育平台CentOS部署实战
  • 好用还专业!2026年公认好用的专业AI智能降重工具
  • 文件存哪里才安全?一文讲透私有存储云存储区别
  • OpenClaw AI开发框架安装与优化指南
  • 北京哪家包包回收门店回款最快?到店查验箱包极速全款结算 - 生活时报
  • 苏州旧黄金变现认准易奢福!本地黄金回收龙头,全域免费上门回收 - 遁地的c
  • Appium抓包技术:移动应用测试与安全分析实战
  • 2026年国内高分子材料检测单位哪家好 ,塑料检测、橡胶检测、涂料检测、胶黏剂检测认准五大核心标准避坑省心 - 变量人生001
  • React性能优化:PureComponent与Component的深度对比
  • AI原生私域与微信私域的核心差异及发展趋势分析
  • 北京爱彼回收价格查询与靠谱平台实测**2026年7月最新) - 嘉价奢侈品回收平台
  • python(序列之字符串)
  • 2026西安黄金回收“避坑”指南:五大维度严选正规门店,附本地口碑** - 奢侈品回收探店ing
  • 代码大语言模型时代:程序员如何从代码生产者进化到AI协作者
  • Hermes Agent记忆系统架构与核心技术解析
  • 苏州本地连锁黄金回收机构,持证经营称重透明当场结算 - 奢侈品回收评测
  • 返利APP跨平台对账系统设计:长短款自动识别与智能自愈机制
  • 如何用 Python + PDFTranslator API 做多语言产品手册批量翻译
  • Java往事:机顶盒项目失败、发布会前三天重写代码、与微软对簿公堂,官方纪录片揭秘30年传奇