claude-reverse-engineering-skill
Health Uyari
- License — License: NOASSERTION
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 7 GitHub stars
Code Uyari
- network request — Outbound network request in skills/reverse-engineering/scripts/extract_endpoints.py
- network request — Outbound network request in tests/test_scripts.py
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Reverse engineering skill for Claude Code and other AI coding agents.
Binary analysis · APK & IPA decompilation · .NET / Java · Electron & WASM · firmware · malware triage · API & protocol recovery · Ghidra / IDA / radare2 / jadx via MCP
Claude Reverse Engineering Skill
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.
Contents
- Why this skill
- What it can analyze
- Works with
- Install
- Usage
- Bundled tools
- How it works
- Requirements
- What the skill runs
- FAQ
- Responsible use
- Contributing
- License
Why this skill
- One command to install, nothing to configure. A standard Agent Skill: install it as a Claude Code plugin or with
npx skills add, and it works. No cloning, no index scripts, no per-client adapters, no extra runtimes — just Python 3.8+. - Scripts that do the analysis. The bundled tools read the files themselves — triage, app/platform metadata, endpoint extraction, decompiled-code export — instead of only routing the agent to someone else's tool.
- Triage first, not guesswork. A zero-dependency triage script reads magic bytes and real headers (PE, ELF, Mach-O, CLR), fingerprints 25+ frameworks, packers, and installers, and tells the agent exactly which playbook to open next.
- Headless by design. Agents can't click through a GUI. The skill ships a Ghidra post-script that exports decompiled C, imports, and strings to a text file — tested against Ghidra 12.1.4, with a CI job that re-runs it on every push — plus non-interactive commands for rizin, jadx, Frida, gdb, and lldb.
- Drives real RE tools over MCP. When rea, GhidraMCP, IDA Pro MCP, radare2-mcp, or jadx MCP is connected, the agent decompiles, renames, and follows cross-references directly — the skill supplies the method, the server does the calls.
- Finds the network surface fast. Pulls Retrofit annotations, HTTP client calls, URLs, hosts, auth headers, and crypto usage out of decompiled code and minified JS, each with
file:line. - Safe with untrusted samples. Isolation rules for malware,
python -Iagainst import hijacking, and an explicit rule that text inside a binary is data — never instructions — so analyzed files can't prompt-inject the agent. - Grounded output. Every finding must cite an address, offset, symbol, or request the tools actually showed, say how it's known (decompiler, assembly, runtime, or inferred), and name what wasn't verified.
- Tested on real tools, not just docs. 63 automated checks covering every script and the skill's structure, run in CI on Linux, macOS, and Windows, plus a CI job that runs the Ghidra export against a real Ghidra release on every push.
- Light on context. One short
SKILL.md; the 14 playbooks load only when a task needs them, so the skill costs almost nothing until it's used. - One permissive license. Everything is Apache-2.0 — safe to use at work, fork, and ship.
What it can analyze
| 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 |
Works with
| 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
Claude Code (recommended)
Listed in Anthropic's official plugin directory for Claude Code, Cowork and the Claude apps: search for Reverse Engineering there. Or install it as a plugin straight from this repository — 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
Claude.ai and Claude Desktop
Add Reverse Engineering from Anthropic's plugin directory. Or download the repository, zip the skills/reverse-engineering folder, and upload it under Settings → Capabilities → Skills.
Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode, Windsurf, Kiro
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
Manual install paths
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/ |
Usage
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).
Bundled tools
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, Go and Rust dependency lists with versions, crypto constants (AES, SHA, ChaCha, RSA…) with addresses, 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: one UTF-8 file with a program map first (entry points, imports with DLL names, strings, most-called functions, and which functions call network, crypto, file, process, registry and loading APIs), then decompiled C for every function. 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
How it works
- Toolbox check — find out what's installed before planning.
- Triage — identify the artifact from its bytes, not its extension.
- Safe workspace — one sample per empty folder; nothing untrusted runs on the host.
- MCP first — drive Ghidra/IDA/radare2/jadx directly when a server is connected.
- Route — open the playbook for the target type.
- Static first, dynamic to confirm — headless decompilation, then hooks or a debugger in isolation when values only exist at runtime.
- Record — findings with addresses and offsets, using the report template.
Requirements
- Required: Python 3.8+ and an agent with shell access.
- Optional, detected at runtime: Ghidra 12+ with JDK 21, rizin or radare2, jadx, apktool, ILSpy (
ilspycmd), Frida, mitmproxy, binwalk, Node.js. Install only what your target needs —check_tools.pyprints the exact command for anything missing.
What the skill runs
Transparency for anyone reviewing it before install:
- No network access, no telemetry. None of the bundled scripts open a network connection or send data anywhere.
- Never executes the file being analyzed.
triage.py,app_inspect.pyandextract_endpoints.pyonly read bytes; the Ghidra scripts run inside your own Ghidra. check_tools.pylooks up tool names on yourPATHand in common install folders (or a--ghidra-diryou pass), checks whether a few Python libraries are importable, and runsjava -version.- Everything else is guidance. The playbooks tell the agent which tools to run (for example Ghidra, jadx, or Frida) when you have them installed; your agent's permission settings decide whether it asks before running them.
FAQ
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.
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.
Contributing
Issues and pull requests are welcome — new target types, better tool recommendations, and fixes as tools evolve.
- Keep
SKILL.mdshort (routing and principles); put depth inreferences/. - Bundled scripts stay standard-library only and cross-platform.
- Every command in a playbook must be non-interactive.
- Run the test suite before opening a PR:
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
License
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.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi