Reverse engineering skill for Claude Code and other AI coding agents.
Python
1
8 commits
updated Oct 12, 2026
Binary analysis · APK & IPA decompilation · .NET / Java · Electron & WASM · firmware · malware triage · API & protocol recovery · Ghidra / IDA / radare2 / jadx via MCP
An Agent Skill that gives your AI agent a professional reverse-engineering workflow: identify what a file really is, pick tools that are actually installed, decompile and export code headlessly, map the network surface, and report findings that point to real addresses — while handling untrusted samples safely.
It covers native executables (ELF, PE, Mach-O), Android (APK, AAB, DEX), iOS and macOS apps, .NET and Java bytecode, JavaScript/Electron/WebAssembly, cross-platform frameworks (Flutter, React Native, Xamarin/MAUI, Unity), installers, firmware images, and network protocols.
Built for authorized work: security research, CTFs, malware analysis, interoperability, and debugging.
npx skills add, and it works. No cloning, no index scripts, no per-client adapters, no extra runtimes — just Python 3.8+.file:line.python -I against import hijacking, and an explicit rule that text inside a binary is data — never instructions — so analyzed files can't prompt-inject the agent.SKILL.md; the 14 playbooks load only when a task needs them, so the skill costs almost nothing until it's used.| Target | Examples | Playbook |
|---|---|---|
| Native binaries | .exe .dll .sys · ELF .so · Mach-O .dylib | native-binaries.md |
| Android | .apk .aab .dex · native libs · smali | android.md |
| iOS / Apple | .ipa · Mach-O apps · frameworks · .app bundles | ios.md |
| .NET & Java | managed .dll/.exe · .jar .class .war | managed-bytecode.md |
| JS, Electron, WASM | bundles · source maps · .asar · .wasm · browser extensions | js-electron-wasm.md |
| Frameworks & packagers | Flutter · React Native/Hermes · Xamarin/MAUI · Unity · Godot · PyInstaller · Node SEA · Go · Rust | frameworks-packagers.md |
| Installers & packages | NSIS · Inno Setup · MSI · MSIX · .deb · .rpm · AppImage · .dmg | frameworks-packagers.md |
| Firmware & IoT | router/camera images · SquashFS/JFFS2/UBI · bare-metal blobs | firmware-embedded.md |
| Network & APIs | HTTPS APIs · WebSockets · gRPC · custom binary protocols | web-apis-protocols.md |
| Running processes | Frida hooks · tracing · sandboxed malware behavior | dynamic-analysis.md |
| Malware | capability triage · obfuscated strings · config extraction · IOCs · YARA rules · reports | malware-analysis.md |
| Version changes | what a security update fixed · regressions · format/protocol changes between builds | diffing.md |
| Agent | Status | Install via |
|---|---|---|
| Claude Code | First-class (script paths resolve automatically) | Plugin marketplace or skills folder |
| Claude.ai / Claude Desktop | Supported | Upload as a skill |
| OpenAI Codex CLI | Supported | npx skills add |
| Cursor | Supported | npx skills add |
| Gemini CLI | Supported | npx skills add |
| GitHub Copilot | Supported | npx skills add |
| OpenCode, Windsurf, Kiro, and other Agent Skills clients | Supported | npx skills add or manual copy |
Any agent that can read a SKILL.md and run shell commands can use the full workflow. Chat-only assistants without a shell can still follow the playbooks, but can't run the bundled scripts.
Install as a plugin — updates arrive automatically. Inside Claude Code, run:
/plugin marketplace add EncidXVII/claude-reverse-engineering-skill
/plugin install reverse-engineering@reverse-engineering-skill
Or from your terminal:
claude plugin marketplace add EncidXVII/claude-reverse-engineering-skill
claude plugin install reverse-engineering@reverse-engineering-skill
Or copy the skill folder (personal = all projects, project = this repo only):
git clone https://github.com/EncidXVII/claude-reverse-engineering-skill
cp -r claude-reverse-engineering-skill/skills/reverse-engineering ~/.claude/skills/ # personal
cp -r claude-reverse-engineering-skill/skills/reverse-engineering .claude/skills/ # project
Download the repository, zip the skills/reverse-engineering folder, and upload it under Settings → Capabilities → Skills.
Use the open-source skills installer (the skill is listed on skills.sh):
npx skills add EncidXVII/claude-reverse-engineering-skill --skill reverse-engineering
npx skills add EncidXVII/claude-reverse-engineering-skill --skill reverse-engineering -a codex -a cursor # pick agents
npx skills add EncidXVII/claude-reverse-engineering-skill --skill reverse-engineering -g # user-wide
Copy skills/reverse-engineering into the agent's skills directory:
| Agent | Project | User-wide |
|---|---|---|
| Claude Code | .claude/skills/ | ~/.claude/skills/ |
| Codex | .agents/skills/ | ~/.agents/skills/ |
| Cursor | .agents/skills/ | ~/.cursor/skills/ |
| Gemini CLI | .agents/skills/ | ~/.gemini/skills/ |
| GitHub Copilot | .agents/skills/ | ~/.copilot/skills/ |
| OpenCode | .agents/skills/ | ~/.config/opencode/skills/ |
| Windsurf | .windsurf/skills/ | ~/.codeium/windsurf/skills/ |
| Kiro | .kiro/skills/ | ~/.kiro/skills/ |
Just describe the task — the skill loads automatically. No special syntax needed.
I have a stripped ELF from a CTF (./crackme). What does the password check do?
Decompile base.apk and list every API endpoint it calls, with the auth headers.
What is this installer from our vendor actually going to drop on the machine?
Unpack this router firmware and find the web admin backend.
Here's a malware sample in my analysis VM — summarize its behavior and IOCs.
How does this Electron app talk to its native addon?
In Claude Code you can also invoke it directly with /reverse-engineering (or /reverse-engineering:reverse-engineering when installed as a plugin).
All scripts are standard-library Python — nothing to pip install.
| Script | What it does |
|---|---|
triage.py | Identify a file or a whole folder (install dir, extracted archive, macOS .app): format, architecture, real .NET check, framework/packer/installer fingerprints, hashes, per-section entropy, interesting strings, container contents, and next steps. |
app_inspect.py | Platform facts in one call: Android manifest (permissions, exported components, deep links, debug/backup flags), iOS/macOS Info.plist, entitlements and App Store encryption per architecture, Windows version info and signer, game engine/version/backend and where the code lives (Unity, Unreal, Godot). |
check_tools.py | Which RE tools, JDK version, and Python RE libraries are installed, grouped by task, with install hints for what's missing. |
extract_endpoints.py | Network and crypto surface of a decompiled tree: Retrofit/smali annotations, client calls, URLs, hosts, auth headers, crypto APIs. Handles minified one-line bundles; masks secrets by default. |
DecompileExport.java | Ghidra headless post-script: decompiled C for every function plus entry points, imports (with DLL names), and strings, in one UTF-8 file. decompile_export.py is the PyGhidra variant. |
Real triage.py output for a Rust executable (trimmed):
type : PE (Windows .exe/.dll/.sys)
format : PE32+
arch : x86-64
subsystem : Windows console
dotnet : False
entropy : 6.428/8.0 (moderate — typical of native code with data)
SECTIONS
.text raw 9,209,856 entropy 6.31
.rdata raw 3,086,336 entropy 6.03
FINGERPRINTS
* Rust binary — demangle names (rustfilt), expect heavy inlining; panic strings leak source paths
SUGGESTED NEXT STEPS
- references/native-binaries.md — `rz-bin -I` / `rz-bin -i` (imports), then decompile
headless with scripts/ghidra/DecompileExport.java (SKILL.md step 6)
Run them yourself:
python skills/reverse-engineering/scripts/check_tools.py
python -I skills/reverse-engineering/scripts/triage.py path/to/file-or-folder
python -I skills/reverse-engineering/scripts/extract_endpoints.py path/to/decompiled-output
ilspycmd), Frida, mitmproxy, binwalk, Node.js. Install only what your target needs — check_tools.py prints the exact command for anything missing.Can Claude reverse engineer an APK?
Yes. The skill has Claude decompile the APK with jadx, detect frameworks like Flutter or React Native, and extract the app's API endpoints with extract_endpoints.py.
Does it work with Ghidra MCP or IDA Pro MCP? Yes. If an RE MCP server is connected, the skill tells the agent to use it for decompiling, renaming, and cross-references. Without one, it uses the bundled headless Ghidra export.
Does it work without Claude?
Yes. It follows the open Agent Skills standard and installs into Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode, and others with npx skills add.
Can it decompile any program? It can analyze nearly any format, but results depend on the installed tools and on the target's protections: strong encryption without the key, or heavy virtualization-based obfuscation, can't be undone by any tool.
Is it safe to point at malware? The skill never executes samples itself and enforces isolation rules for any dynamic step — but run malware analysis inside a disposable VM with no credentials, as you would without an AI agent.
Is reverse engineering legal? It's widely legal for security research, interoperability, and analyzing software you own or are authorized to test, but laws and license terms vary by country. See Responsible use.
This project is for analyzing software you own, are authorized to test, or are permitted to study: CTF challenges, lab malware samples, your own products, and scoped security engagements. The skill declines to help with piracy, license or DRM removal to avoid paying, cheats for online multiplayer games, and making malware evade detection. You are responsible for following applicable laws and license agreements.
Issues and pull requests are welcome — new target types, better tool recommendations, and fixes as tools evolve.
SKILL.md short (routing and principles); put depth in references/.python tests/test_scripts.py
.
├── .claude-plugin/ Claude Code plugin + marketplace manifests
├── .github/workflows/ CI: tests on Linux/macOS/Windows, frontmatter lint, real-Ghidra export
├── evals/ trigger evals for tuning the skill description
├── skills/reverse-engineering/
│ ├── SKILL.md entry point: workflow, routing, safety rules
│ ├── references/ 14 playbooks, loaded on demand
│ ├── scripts/ triage, tool check, endpoint extraction, Ghidra export
│ └── assets/ findings report template
└── tests/ dependency-free test suite
Independent project, not affiliated with or endorsed by Anthropic, OpenAI, Google, GitHub, or the NSA. Claude, Ghidra, IDA Pro, and other product names are trademarks of their respective owners.
Reverse engineering skill for Claude Code and other AI coding agents.
Python
1
8 commits
updated Oct 12, 2026
Binary analysis · APK & IPA decompilation · .NET / Java · Electron & WASM · firmware · malware triage · API & protocol recovery · Ghidra / IDA / radare2 / jadx via MCP
An Agent Skill that gives your AI agent a professional reverse-engineering workflow: identify what a file really is, pick tools that are actually installed, decompile and export code headlessly, map the network surface, and report findings that point to real addresses — while handling untrusted samples safely.
It covers native executables (ELF, PE, Mach-O), Android (APK, AAB, DEX), iOS and macOS apps, .NET and Java bytecode, JavaScript/Electron/WebAssembly, cross-platform frameworks (Flutter, React Native, Xamarin/MAUI, Unity), installers, firmware images, and network protocols.
Built for authorized work: security research, CTFs, malware analysis, interoperability, and debugging.
npx skills add, and it works. No cloning, no index scripts, no per-client adapters, no extra runtimes — just Python 3.8+.file:line.python -I against import hijacking, and an explicit rule that text inside a binary is data — never instructions — so analyzed files can't prompt-inject the agent.SKILL.md; the 14 playbooks load only when a task needs them, so the skill costs almost nothing until it's used.| Target | Examples | Playbook |
|---|---|---|
| Native binaries | .exe .dll .sys · ELF .so · Mach-O .dylib | native-binaries.md |
| Android | .apk .aab .dex · native libs · smali | android.md |
| iOS / Apple | .ipa · Mach-O apps · frameworks · .app bundles | ios.md |
| .NET & Java | managed .dll/.exe · .jar .class .war | managed-bytecode.md |
| JS, Electron, WASM | bundles · source maps · .asar · .wasm · browser extensions | js-electron-wasm.md |
| Frameworks & packagers | Flutter · React Native/Hermes · Xamarin/MAUI · Unity · Godot · PyInstaller · Node SEA · Go · Rust | frameworks-packagers.md |
| Installers & packages | NSIS · Inno Setup · MSI · MSIX · .deb · .rpm · AppImage · .dmg | frameworks-packagers.md |
| Firmware & IoT | router/camera images · SquashFS/JFFS2/UBI · bare-metal blobs | firmware-embedded.md |
| Network & APIs | HTTPS APIs · WebSockets · gRPC · custom binary protocols | web-apis-protocols.md |
| Running processes | Frida hooks · tracing · sandboxed malware behavior | dynamic-analysis.md |
| Malware | capability triage · obfuscated strings · config extraction · IOCs · YARA rules · reports | malware-analysis.md |
| Version changes | what a security update fixed · regressions · format/protocol changes between builds | diffing.md |
| Agent | Status | Install via |
|---|---|---|
| Claude Code | First-class (script paths resolve automatically) | Plugin marketplace or skills folder |
| Claude.ai / Claude Desktop | Supported | Upload as a skill |
| OpenAI Codex CLI | Supported | npx skills add |
| Cursor | Supported | npx skills add |
| Gemini CLI | Supported | npx skills add |
| GitHub Copilot | Supported | npx skills add |
| OpenCode, Windsurf, Kiro, and other Agent Skills clients | Supported | npx skills add or manual copy |
Any agent that can read a SKILL.md and run shell commands can use the full workflow. Chat-only assistants without a shell can still follow the playbooks, but can't run the bundled scripts.
Install as a plugin — updates arrive automatically. Inside Claude Code, run:
/plugin marketplace add EncidXVII/claude-reverse-engineering-skill
/plugin install reverse-engineering@reverse-engineering-skill
Or from your terminal:
claude plugin marketplace add EncidXVII/claude-reverse-engineering-skill
claude plugin install reverse-engineering@reverse-engineering-skill
Or copy the skill folder (personal = all projects, project = this repo only):
git clone https://github.com/EncidXVII/claude-reverse-engineering-skill
cp -r claude-reverse-engineering-skill/skills/reverse-engineering ~/.claude/skills/ # personal
cp -r claude-reverse-engineering-skill/skills/reverse-engineering .claude/skills/ # project
Download the repository, zip the skills/reverse-engineering folder, and upload it under Settings → Capabilities → Skills.
Use the open-source skills installer (the skill is listed on skills.sh):
npx skills add EncidXVII/claude-reverse-engineering-skill --skill reverse-engineering
npx skills add EncidXVII/claude-reverse-engineering-skill --skill reverse-engineering -a codex -a cursor # pick agents
npx skills add EncidXVII/claude-reverse-engineering-skill --skill reverse-engineering -g # user-wide
Copy skills/reverse-engineering into the agent's skills directory:
| Agent | Project | User-wide |
|---|---|---|
| Claude Code | .claude/skills/ | ~/.claude/skills/ |
| Codex | .agents/skills/ | ~/.agents/skills/ |
| Cursor | .agents/skills/ | ~/.cursor/skills/ |
| Gemini CLI | .agents/skills/ | ~/.gemini/skills/ |
| GitHub Copilot | .agents/skills/ | ~/.copilot/skills/ |
| OpenCode | .agents/skills/ | ~/.config/opencode/skills/ |
| Windsurf | .windsurf/skills/ | ~/.codeium/windsurf/skills/ |
| Kiro | .kiro/skills/ | ~/.kiro/skills/ |
Just describe the task — the skill loads automatically. No special syntax needed.
I have a stripped ELF from a CTF (./crackme). What does the password check do?
Decompile base.apk and list every API endpoint it calls, with the auth headers.
What is this installer from our vendor actually going to drop on the machine?
Unpack this router firmware and find the web admin backend.
Here's a malware sample in my analysis VM — summarize its behavior and IOCs.
How does this Electron app talk to its native addon?
In Claude Code you can also invoke it directly with /reverse-engineering (or /reverse-engineering:reverse-engineering when installed as a plugin).
All scripts are standard-library Python — nothing to pip install.
| Script | What it does |
|---|---|
triage.py | Identify a file or a whole folder (install dir, extracted archive, macOS .app): format, architecture, real .NET check, framework/packer/installer fingerprints, hashes, per-section entropy, interesting strings, container contents, and next steps. |
app_inspect.py | Platform facts in one call: Android manifest (permissions, exported components, deep links, debug/backup flags), iOS/macOS Info.plist, entitlements and App Store encryption per architecture, Windows version info and signer, game engine/version/backend and where the code lives (Unity, Unreal, Godot). |
check_tools.py | Which RE tools, JDK version, and Python RE libraries are installed, grouped by task, with install hints for what's missing. |
extract_endpoints.py | Network and crypto surface of a decompiled tree: Retrofit/smali annotations, client calls, URLs, hosts, auth headers, crypto APIs. Handles minified one-line bundles; masks secrets by default. |
DecompileExport.java | Ghidra headless post-script: decompiled C for every function plus entry points, imports (with DLL names), and strings, in one UTF-8 file. decompile_export.py is the PyGhidra variant. |
Real triage.py output for a Rust executable (trimmed):
type : PE (Windows .exe/.dll/.sys)
format : PE32+
arch : x86-64
subsystem : Windows console
dotnet : False
entropy : 6.428/8.0 (moderate — typical of native code with data)
SECTIONS
.text raw 9,209,856 entropy 6.31
.rdata raw 3,086,336 entropy 6.03
FINGERPRINTS
* Rust binary — demangle names (rustfilt), expect heavy inlining; panic strings leak source paths
SUGGESTED NEXT STEPS
- references/native-binaries.md — `rz-bin -I` / `rz-bin -i` (imports), then decompile
headless with scripts/ghidra/DecompileExport.java (SKILL.md step 6)
Run them yourself:
python skills/reverse-engineering/scripts/check_tools.py
python -I skills/reverse-engineering/scripts/triage.py path/to/file-or-folder
python -I skills/reverse-engineering/scripts/extract_endpoints.py path/to/decompiled-output
ilspycmd), Frida, mitmproxy, binwalk, Node.js. Install only what your target needs — check_tools.py prints the exact command for anything missing.Can Claude reverse engineer an APK?
Yes. The skill has Claude decompile the APK with jadx, detect frameworks like Flutter or React Native, and extract the app's API endpoints with extract_endpoints.py.
Does it work with Ghidra MCP or IDA Pro MCP? Yes. If an RE MCP server is connected, the skill tells the agent to use it for decompiling, renaming, and cross-references. Without one, it uses the bundled headless Ghidra export.
Does it work without Claude?
Yes. It follows the open Agent Skills standard and installs into Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode, and others with npx skills add.
Can it decompile any program? It can analyze nearly any format, but results depend on the installed tools and on the target's protections: strong encryption without the key, or heavy virtualization-based obfuscation, can't be undone by any tool.
Is it safe to point at malware? The skill never executes samples itself and enforces isolation rules for any dynamic step — but run malware analysis inside a disposable VM with no credentials, as you would without an AI agent.
Is reverse engineering legal? It's widely legal for security research, interoperability, and analyzing software you own or are authorized to test, but laws and license terms vary by country. See Responsible use.
This project is for analyzing software you own, are authorized to test, or are permitted to study: CTF challenges, lab malware samples, your own products, and scoped security engagements. The skill declines to help with piracy, license or DRM removal to avoid paying, cheats for online multiplayer games, and making malware evade detection. You are responsible for following applicable laws and license agreements.
Issues and pull requests are welcome — new target types, better tool recommendations, and fixes as tools evolve.
SKILL.md short (routing and principles); put depth in references/.python tests/test_scripts.py
.
├── .claude-plugin/ Claude Code plugin + marketplace manifests
├── .github/workflows/ CI: tests on Linux/macOS/Windows, frontmatter lint, real-Ghidra export
├── evals/ trigger evals for tuning the skill description
├── skills/reverse-engineering/
│ ├── SKILL.md entry point: workflow, routing, safety rules
│ ├── references/ 14 playbooks, loaded on demand
│ ├── scripts/ triage, tool check, endpoint extraction, Ghidra export
│ └── assets/ findings report template
└── tests/ dependency-free test suite
Independent project, not affiliated with or endorsed by Anthropic, OpenAI, Google, GitHub, or the NSA. Claude, Ghidra, IDA Pro, and other product names are trademarks of their respective owners.