ffuf-web-fuzzing
Expert guidance for ffuf web fuzzing during authorized penetration testing. Covers directory discovery, subdomain enumeration,…
Reverse engineers binaries using Ghidra's headless analyzer. Use when decompiling executables, extracting functions, strings, symbols, or analyzing call graphs from compiled binaries without the Ghidra GUI.
$ npx -y skills add trailofbits/skills-curated --skill ghidra-headless --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ghidra-headlessContext preview
The summary Claude sees to decide when to auto-load this skill.
Reverse engineers binaries using Ghidra's headless analyzer. Use when decompiling executables, extracting functions, strings, symbols, or analyzing call graphs from compiled binaries without the Ghidra GUI.
name: ghidra-headless description: >- Reverse engineers binaries using Ghidra's headless analyzer. Use when decompiling executables, extracting functions, strings, symbols, or analyzing call graphs from compiled binaries without the Ghidra GUI. allowed-tools: - Bash - Read - Grep - Glob
Perform automated reverse engineering using Ghidra's `analyzeHeadless` tool. Import binaries, run analysis, decompile to C code, and extract useful information.
| Task | Command | |------|---------| | Full analysis with all exports | `{baseDir}/scripts/ghidra-analyze.sh -s ExportAll.java -o ./output binary` | | Decompile to C code | `{baseDir}/scripts/ghidra-analyze.sh -s ExportDecompiled.java -o ./output binary` | | List functions | `{baseDir}/scripts/ghidra-analyze.sh -s ExportFunctions.java -o ./output binary` | | Extract strings | `{baseDir}/scripts/ghidra-analyze.sh -s ExportStrings.java -o ./output binary` | | Get call graph | `{baseDir}/scripts/ghidra-analyze.sh -s ExportCalls.java -o ./output binary` | | Export symbols | `{baseDir}/scripts/ghidra-analyze.sh -s ExportSymbols.java -o ./output binary` | | Find Ghidra path | `{baseDir}/scripts/find-ghidra.sh` |
The skill automatically locates Ghidra in common installation paths. Set `GHIDRA_HOME` environment variable if Ghidra is installed in a non-standard location.
{baseDir}/scripts/ghidra-analyze.sh [options] <binary>Wrapper that handles project creation/cleanup and provides a simpler interface to `analyzeHeadless`.
**Options:**
Runs summary, decompilation, function list, strings, and interesting-pattern exports. Does not include call graph or symbols — run ExportCalls.java and ExportSymbols.java separately if needed. Best for initial analysis.
**Output files:**
{baseDir}/scripts/ghidra-analyze.sh -s ExportAll.java -o ./analysis firmware.binDecompile all functions to C pseudocode.
**Output:** `{name}_decompiled.c`
Export function list as JSON with addresses, signatures, parameters, and call relationships.
**Output:** `{name}_functions.json`
Extract all strings (ASCII, Unicode) with addresses.
**Output:** `{name}_strings.json`
Export function call graph showing caller/callee relationships. Includes full call graph, potential entry points, and most frequently called functions.
**Output:** `{name}_calls.json`
Export all symbols: imports, exports, and internal symbols.
**Output:** `{name}_symbols.json`
mkdir -p ./analysis
{baseDir}/scripts/ghidra-analyze.sh -s ExportAll.java -o ./analysis unknown_binary
cat ./analysis/unknown_binary_summary.txt
cat ./analysis/unknown_binary_interesting.txt{baseDir}/scripts/ghidra-analyze.sh \
-p "ARM:LE:32:v7" \
-s ExportAll.java \
-o ./firmware_analysis \
firmware.bin{baseDir}/scripts/ghidra-analyze.sh --no-analysis -s ExportFunctions.java -o . program
cat program_functions.json | jq '.functions[] | "\(.address): \(.name)"'# After running ExportDecompiled, search for patterns grep -n "password\|secret\|key" output_decompiled.c grep -n "strcpy\|sprintf\|gets" output_decompiled.c
Common processor IDs for the `-p` option:
| Architecture | Processor ID | |-------------|--------------| | x86 32-bit | `x86:LE:32:default` | | x86 64-bit | `x86:LE:64:default` | | ARM 32-bit | `ARM:LE:32:v7` | | ARM 64-bit | `AARCH64:LE:64:v8A` | | MIPS 32-bit | `MIPS:BE:32:default` or `MIPS:LE:32:default` | | PowerPC | `PowerPC:BE:32:default` |
{baseDir}/scripts/find-ghidra.sh
# Or set GHIDRA_HOME if in non-standard location
export GHIDRA_HOME=/path/to/ghidra_11.x_PUBLIC##
Trail of Bits' reviewed and approved Claude Code plugins. Every skill and marketplace here has been vetted for quality and safety.
Expert guidance for ffuf web fuzzing during authorized penetration testing. Covers directory discovery, subdomain enumeration,…
Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and…
Researches a topic from the last 30 days on Reddit, X, and the web. Surfaces real community discussions with engagement metrics…
Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform
Use when the agent is building or iterating on a web game (HTML/JS) and needs a reliable
Use when the task involves reading, creating, or editing `.docx` documents, especially when