Jtagprobe

SWD/JTAG debug-port pentest probe via a physical SEGGER J-Link, classifies OPEN/LOCKED/DEAD.

Tested · Works

Test report

Verdict
Tested · Works
Score
9.6/10
Tested
Jul 13, 2026
Environment
Claude Code 2.x (agent harness)
Upstream re-checked
Jul 18, 2026 · dfd7297

This is a real 195-line Python tool (not vaporware) wired to SEGGER's JLinkExe; fed it the sample DPIDR/all-0xFF readout from its own docs and it correctly reasoned LOCKED-not-erased (a successful halt plus valid CPUID rules out a blank/unfused chip) and cited the exact STM32 RDP register to check - a hardware-dependent tool that's upfront about needing a physical J-Link.

Scored on four weighted criteria — install, triggering, output vs. baseline, docs. How scoring works

  • Installs cleanly 5/5
  • Triggers reliably 5/5
  • Output vs. baseline 9/10
  • Docs & honesty 5/5

What Jtagprobe does

Drives a real J-Link (via the bundled jtagprobe Python CLI) to sweep SWD then JTAG at multiple clock speeds, identify the silicon vendor from DPIDR/IDCODE, and attempt halt+memory-read to classify a target's debug interface as OPEN, LOCKED, or DEAD. Triggers when assessing whether an on-chip debug port is exposed on physical hardware; requires JLinkExe and a wired J-Link, and does not attempt unlock or mass-erase.

How to install Jtagprobe

git clone https://github.com/BrownFineSecurity/iothackbot
cd iothackbot
mkdir -p ~/.claude/skills
cp -r skills/jtagprobe ~/.claude/skills/jtagprobe
# also add iothackbot/bin to PATH for the actual jtagprobe CLI (tools/iothackbot/jtagprobe.py) to run

Skills live in ~/.claude/skills/ (global) or .claude/skills/ (per-project). Restart Claude Code after installing.

Commands — how to trigger Jtagprobe

  • /jtagprobe SWD/JTAG debug-port pentest probe via a physical SEGGER J-Link, classifies OPEN/LOCKED/DEAD.

It also activates on plain-language prompts like these:

  • Check whether the debug port on this board is exposed over SWD
  • Sweep JTAG and SWD on this chip and tell me if it's locked or open
  • Identify the silicon vendor on this target using its debug port

Frequently asked questions

Is the Jtagprobe skill free?
Yes. The skill itself is free from BrownFineSecurity/iothackbot. SkillProof publishes the install command and an independent test verdict at no cost.
Does Jtagprobe work with Claude Code?
We tested it with Claude Code 2.x (agent harness) on Jul 13, 2026. Verdict: Tested · Works. This is a real 195-line Python tool (not vaporware) wired to SEGGER's JLinkExe; fed it the sample DPIDR/all-0xFF readout from its own docs and it correctly reasoned LOCKED-not-erased (a successful halt plus valid CPUID rules out a blank/unfused chip) and cited the exact STM32 RDP register to check - a hardware-dependent tool that's upfront about needing a physical J-Link.
What is the Jtagprobe SkillProof Score?
9.6/10 — installs cleanly 5/5, triggers reliably 5/5, output vs. baseline 9/10, docs & honesty 5/5.
How do I install Jtagprobe?
Copy the install command from this page, run it in your terminal, and restart Claude Code. Skills live in ~/.claude/skills/ (global) or .claude/skills/ inside a project.
Can I use Jtagprobe with Cursor, Copilot, Gemini CLI, Codex or other AI tools?
The SKILL.md format is native to Claude (Claude Code, Desktop, claude.ai). The instructions inside adapt to other assistants: Cursor rules, GitHub Copilot instructions, Windsurf rules, Custom GPTs, AGENTS.md for OpenAI Codex, and GEMINI.md for Google Gemini CLI — our conversion guides cover each, and the free converter on the tools page does the wrapping for you.