From c1dd4f7e8cfb438d74ce6d47f205c88b514f99f1 Mon Sep 17 00:00:00 2001 From: Samuel Mensah Date: Tue, 21 Apr 2026 12:46:00 +0000 Subject: [PATCH] feat: add Windows RE plugin and multi-agent support for 9 coding agents - Add Windows reverse engineering plugin (Ghidra + ILSpy) - PowerShell scripts: check-deps, install-dep, decompile, find-api-calls - Ghidra headless Jython export script (ExportDecompiled.py) - Reference docs: setup guide, Ghidra/ILSpy CLI, API patterns, call flows - Add agent instruction files for Codex, Cursor, Copilot, Cline, Windsurf, Roo Code, Aider, OpenCode - Add universal installer (install.ps1 / install.sh) with interactive agent selection - Add AGENTS.md as universal agent instruction standard - Update README with multi-agent support and installer usage --- .aider.conf.yml | 5 + .claude-plugin/marketplace.json | 13 + .clinerules/android-reverse-engineering.md | 54 +++ .clinerules/windows-reverse-engineering.md | 58 +++ .cursor/rules/android-reverse-engineering.mdc | 61 +++ .cursor/rules/windows-reverse-engineering.mdc | 59 +++ .github/copilot-instructions.md | 20 + .../instructions/android-re.instructions.md | 39 ++ .../instructions/windows-re.instructions.md | 40 ++ .roo/rules/android-reverse-engineering.md | 54 +++ .roo/rules/windows-reverse-engineering.md | 58 +++ .../rules/android-reverse-engineering.md | 54 +++ .../rules/windows-reverse-engineering.md | 58 +++ AGENTS.md | 166 ++++++++ README.md | 161 +++++++- install.ps1 | 290 +++++++++++++ install.sh | 282 +++++++++++++ .../.claude-plugin/plugin.json | 13 + .../commands/decompile.md | 100 +++++ .../windows-reverse-engineering/SKILL.md | 300 ++++++++++++++ .../references/api-extraction-patterns.md | 228 +++++++++++ .../references/call-flow-analysis.md | 296 ++++++++++++++ .../references/ghidra-headless-usage.md | 159 +++++++ .../references/ilspy-usage.md | 185 +++++++++ .../references/setup-guide.md | 264 ++++++++++++ .../scripts/check-deps.ps1 | 193 +++++++++ .../scripts/decompile.ps1 | 387 ++++++++++++++++++ .../scripts/find-api-calls.ps1 | 266 ++++++++++++ .../ghidra-scripts/ExportDecompiled.py | 233 +++++++++++ .../ExportDecompiled.cpython-313.pyc | Bin 0 -> 12242 bytes .../scripts/install-dep.ps1 | 370 +++++++++++++++++ 31 files changed, 4452 insertions(+), 14 deletions(-) create mode 100644 .aider.conf.yml create mode 100644 .clinerules/android-reverse-engineering.md create mode 100644 .clinerules/windows-reverse-engineering.md create mode 100644 .cursor/rules/android-reverse-engineering.mdc create mode 100644 .cursor/rules/windows-reverse-engineering.mdc create mode 100644 .github/copilot-instructions.md create mode 100644 .github/instructions/android-re.instructions.md create mode 100644 .github/instructions/windows-re.instructions.md create mode 100644 .roo/rules/android-reverse-engineering.md create mode 100644 .roo/rules/windows-reverse-engineering.md create mode 100644 .windsurf/rules/android-reverse-engineering.md create mode 100644 .windsurf/rules/windows-reverse-engineering.md create mode 100644 AGENTS.md create mode 100644 install.ps1 create mode 100644 install.sh create mode 100644 plugins/windows-reverse-engineering/.claude-plugin/plugin.json create mode 100644 plugins/windows-reverse-engineering/commands/decompile.md create mode 100644 plugins/windows-reverse-engineering/skills/windows-reverse-engineering/SKILL.md create mode 100644 plugins/windows-reverse-engineering/skills/windows-reverse-engineering/references/api-extraction-patterns.md create mode 100644 plugins/windows-reverse-engineering/skills/windows-reverse-engineering/references/call-flow-analysis.md create mode 100644 plugins/windows-reverse-engineering/skills/windows-reverse-engineering/references/ghidra-headless-usage.md create mode 100644 plugins/windows-reverse-engineering/skills/windows-reverse-engineering/references/ilspy-usage.md create mode 100644 plugins/windows-reverse-engineering/skills/windows-reverse-engineering/references/setup-guide.md create mode 100644 plugins/windows-reverse-engineering/skills/windows-reverse-engineering/scripts/check-deps.ps1 create mode 100644 plugins/windows-reverse-engineering/skills/windows-reverse-engineering/scripts/decompile.ps1 create mode 100644 plugins/windows-reverse-engineering/skills/windows-reverse-engineering/scripts/find-api-calls.ps1 create mode 100644 plugins/windows-reverse-engineering/skills/windows-reverse-engineering/scripts/ghidra-scripts/ExportDecompiled.py create mode 100644 plugins/windows-reverse-engineering/skills/windows-reverse-engineering/scripts/ghidra-scripts/__pycache__/ExportDecompiled.cpython-313.pyc create mode 100644 plugins/windows-reverse-engineering/skills/windows-reverse-engineering/scripts/install-dep.ps1 diff --git a/.aider.conf.yml b/.aider.conf.yml new file mode 100644 index 0000000..54ef816 --- /dev/null +++ b/.aider.conf.yml @@ -0,0 +1,5 @@ +# Aider configuration for reverse engineering skills +# AGENTS.md is auto-loaded as context for every session + +read: + - AGENTS.md diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index e4f2582..6aa1fda 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -22,6 +22,19 @@ "license": "Apache-2.0", "keywords": ["android", "reverse-engineering", "apk", "jadx", "decompile", "api-extraction"], "category": "security" + }, + { + "name": "windows-reverse-engineering", + "source": "./plugins/windows-reverse-engineering", + "description": "Decompile Windows EXE/DLL/.NET assemblies with Ghidra and ILSpy, trace call flows, and document extracted Win32/network APIs.", + "version": "1.0.0", + "author": { + "name": "Simone Avogadro" + }, + "repository": "https://github.com/SimoneAvogadro/android-reverse-engineering-skill", + "license": "Apache-2.0", + "keywords": ["windows", "reverse-engineering", "exe", "dll", "ghidra", "ilspy", "decompile", "pe-analysis", "api-extraction"], + "category": "security" } ] } diff --git a/.clinerules/android-reverse-engineering.md b/.clinerules/android-reverse-engineering.md new file mode 100644 index 0000000..16c5dea --- /dev/null +++ b/.clinerules/android-reverse-engineering.md @@ -0,0 +1,54 @@ +# Android Reverse Engineering + +Decompile Android APK, XAPK, JAR, and AAR files using jadx and Fernflower/Vineflower. Extract Retrofit endpoints, OkHttp calls, hardcoded URLs, and authentication patterns. + +## Dependencies + +Run the dependency checker before decompiling: +```bash +bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/check-deps.sh +``` + +Required: Java JDK 17+, jadx. +Optional: Fernflower/Vineflower, dex2jar, apktool. + +Install missing: +```bash +bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/install-dep.sh +``` + +## Workflow + +1. **Check deps**: `check-deps.sh` → outputs `INSTALL_REQUIRED:` for missing tools +2. **Decompile**: `decompile.sh ` with `--engine jadx|fernflower|both`, `--deobf` +3. **Analyze**: Review AndroidManifest.xml, package structure, architecture patterns +4. **Trace flows**: Follow Activity → ViewModel → Repository → Retrofit/OkHttp → HTTP +5. **Extract APIs**: `find-api-calls.sh ` with `--retrofit`, `--okhttp`, `--urls`, `--auth` + +## Script Locations + +All scripts are at: `plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/` +- `check-deps.sh` — verify dependencies +- `install-dep.sh` — install a dependency +- `decompile.sh` — main decompile wrapper +- `find-api-calls.sh` — API call search + +## Reference Documentation + +- `plugins/android-reverse-engineering/skills/android-reverse-engineering/references/setup-guide.md` +- `plugins/android-reverse-engineering/skills/android-reverse-engineering/references/jadx-usage.md` +- `plugins/android-reverse-engineering/skills/android-reverse-engineering/references/fernflower-usage.md` +- `plugins/android-reverse-engineering/skills/android-reverse-engineering/references/api-extraction-patterns.md` +- `plugins/android-reverse-engineering/skills/android-reverse-engineering/references/call-flow-analysis.md` + +## Output Format + +Document each API endpoint as: +```markdown +### `METHOD /api/endpoint` +- **Source**: ClassName.java:42 +- **Retrofit**: @POST("/api/endpoint") +- **Headers**: Authorization: Bearer {token} +- **Body**: { "key": "value" } +- **Called from**: Activity → ViewModel → Repository → ApiService +``` diff --git a/.clinerules/windows-reverse-engineering.md b/.clinerules/windows-reverse-engineering.md new file mode 100644 index 0000000..60a8056 --- /dev/null +++ b/.clinerules/windows-reverse-engineering.md @@ -0,0 +1,58 @@ +# Windows Reverse Engineering + +Decompile Windows EXE, DLL, SYS, and .NET assemblies using Ghidra (native PE → C pseudocode) and ILSpy (.NET → C# source). Auto-detects binary type and selects the appropriate engine. + +## Dependencies + +Run the dependency checker before decompiling: +```powershell +powershell -ExecutionPolicy Bypass -File plugins/windows-reverse-engineering/skills/windows-reverse-engineering/scripts/check-deps.ps1 +``` + +Required (at least one): Java JDK 17+ with Ghidra, OR ilspycmd (.NET SDK). +Optional: strings/strings2, dumpbin (Visual Studio C++ Build Tools), de4dot. + +Install missing: +```powershell +powershell -ExecutionPolicy Bypass -File plugins/windows-reverse-engineering/skills/windows-reverse-engineering/scripts/install-dep.ps1 +``` + +If PowerShell execution policy blocks scripts, use: `powershell -ExecutionPolicy Bypass -File