SuperAPI AI 工具集

jtagprobe

测试与质量

查看项目

更新于 10-15 17:30

技能介绍

用途:借助物理连接的 SEGGER J-Link,检测目标芯片的片上调试接口(SWD 或 JTAG)是否暴露,并判定访问级别。

主要能力:检查三层嵌套访问,输出三种分类——OPEN(DP 响应、CPU 可暂停、内存读取返回合理数据,可完全调试);LOCKED(DP/IDCODE 可访问但内存读取失败或返回 0xFFFFFFFF 等读出保护标志,如 STM32 RDP、NXP CRP、Nordic APPROTECT);DEAD(任何接口/速率下均无 DP/IDCODE 响应)。默认先扫 SWD 再扫 JTAG,速率依次为 4000/1000/100 kHz,最后可做 JTAG 链自动扫描,并从 DPIDR/IDCODE 的 JEP106 字段识别厂商。

使用方式:需 J-Link 经 USB 连接,JLinkExe 在 PATH 中(可用 which JLinkExe 验证,或用 --jlink-binary /path/to/JLinkExe 指定),目标接好 20 针或 10 针 Cortex Debug 排针。基本命令:jtagprobe;保存证据:jtagprobe --evidence-dir ./evidence/jtagprobe-$(date +%Y%m%d-%H%M%S);JSON 输出:jtagprobe --format json;指定芯片:jtagprobe --device STM32F407VG;限速:jtagprobe --speeds 1000,100,10;仅连接不读内存:jtagprobe --skip-memory;限定接口:jtagprobe --interfaces SWD 或 jtagprobe --interfaces JTAG --speeds 4000,1000。

适用场景:硬件渗透测试、固件安全评估,用于 CWE-1191、CWE-1244 类发现记录,可采集 DPIDR/IDCODE、向量表等证据。

限制:需物理接触调试排针与 J-Link,非网络或抓包检测;未传 --device 时使用通用 Cortex-M 配置,暂停/读内存可能成功但厂商专用解锁未必;JLinkExe 输出解析基于正则,SEGGER 改格式可能需更新;不执行解锁或整片擦除等破坏性操作。若 JLinkExe 缺失,应提示用户从 segger.com 安装,未经明确许可不得自行安装。