Jtagprobe
SWD/JTAG debug-port pentest probe via a physical SEGGER J-Link, classifies OPEN/LOCKED/DEAD.
Test report
- Verdict
- Tested · Works
- Score
- 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
-
/jtagprobeSWD/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.