DexAndroid MCP server
Commit 18. Okt. 2026Ermöglicht es AI-Clients, Android Reverse-Engineering durchzuführen, einschließlich APK Unpacking, Smali-Decompilation und Packer-Detection.
Auch bekannt als TimeCyber/DexAndroid
- Stars
- 2
- Tools
- 15
- Downloads, 30 Tage
- —
- Neueste Version
- —
- Letzter Commit
- 18. Okt. 2026
- Lizenz
- MIT
Was ist DexAndroid MCP?
DexAndroid ist ein MCP server. Ermöglicht es AI-Clients, Android Reverse-Engineering durchzuführen, einschließlich APK Unpacking, Smali-Decompilation und Packer-Detection. Er stellt 15 Tools bereit, etwa detect_packer, pull_apk, static_unpack.
Zusammenfassung generiert aus dem README des Projekts
Über DexAndroid MCP server
DexAndroid ermöglicht Android Reverse-Engineering und Smali-Analysen direkt aus AI-Clients wie Cursor, Claude Code oder Codex heraus. Dieser Server bietet eine Suite von Tools für Security Researcher und Entwickler, um verbundene ADB-Geräte zu verwalten, verschiedene Packer wie Tencent oder Alibaba zu erkennen und Anwendungen mit unterschiedlichen Methoden zu entpacken.
Nutzer können zwischen statischem Unpacking für einfache Dateien, BlackDex für Memory Dumps ohne Root oder Frida für tiefgreifendes Unpacking auf gerooteten Geräten wählen. Der Server erleichtert die Konvertierung von dex-Dateien in das Smali-Format mittels baksmali, was eine detaillierte Code-Inspektion ermöglicht. Sobald die Dateien dekompiliert sind, unterstützt das System die Suche nach API-Strings, das Auflisten von Classes und das Lesen spezifischer Smali-Dateien, um die App-Logik zu verstehen.
Für das Setup werden Node.js, Java 8 oder höher und ADB in deinem System-Path benötigt. Während Basisfunktionen mit Standard-Setups funktionieren, erfordert fortgeschrittenes Unpacking lokale Binaries wie frida-server oder BlackDex in einem tools-Verzeichnis. Alle entpackten Dateien werden in einem lokalen Verzeichnis gespeichert, das über die Umgebungsvariable DEX_OUT_DIR definiert wird.
Was du damit machen kannst
- 1Erkennen von Application PackernIdentifiziere, ob eine APK durch spezifische Security-Provider wie Bangcle oder ijiami geschützt ist.
- 2Entpacken geschützter AnwendungenExtrahiere die Business-Logik aus geschützten Apps mittels Memory Dumps, wenn statische Methoden fehlschlagen.
- 3Suche nach API-EndpointsNutze Regex-Patterns, um Netzwerk-URLs oder sensible API-Strings innerhalb des Smali-Codes zu finden.
- 4Lokalisieren von Application Entry PointsFinde die Main Launcher Activity und die onCreate-Methode innerhalb des Smali-Verzeichnisses.
Geschrieben aus dem README des Projekts. Jeder Use Case wurde gegen ein Zitat daraus geprüft.
DexAndroid MCP tools 15
Erkannt aus dem READMEdetect_packerpull_apkstatic_unpackblackdex_prepareblackdex_pullfrida_preparefrida_unpackdex_to_smalismali_list_classessmali_read_classsmali_searchfind_app_entry
| detect_packer | — | |
| pull_apk | — | |
| static_unpack | — | |
| blackdex_prepare | — | |
| blackdex_pull | — | |
| frida_prepare | — | |
| frida_unpack | — | |
| dex_to_smali | — | |
| smali_list_classes | — | |
| smali_read_class | — | |
| smali_search | — | |
| find_app_entry | — |
Alle 15 Tools anzeigenWeniger Tools anzeigen
apk_decodeapk_repacksmali_patch
| apk_decode | — | |
| apk_repack | — | |
| smali_patch | — |
Konfiguration
ADB_PATHDEX_OUT_DIR
| Name | Beschreibung | Typ |
|---|---|---|
| ADB_PATH | — | |
| DEX_OUT_DIR | — |
Automatisierte Checks
Geluften am 14. Nov. 2026Vollständiger Bericht →Noch nicht verifiziert. Ein Server benötigt einen Score von 80, keine kritischen Befunde und genug Daten für unsere Prüfung. Wie die Checks funktionieren
- Source Repository verknüpft und erreichbartimecyber/dexandroid is public and reachablegithub.com/timecyber/dexandroid ↗Bestanden
- Paket nennt dieses Repository als QuelleNicht geprüft
- Build-Herkunft (Sigstore-Attestierung)Nicht geprüft
- Open Source Lizenz (OSI)MITspdx.org/licenses/MIT.html ↗Bestanden
- Commit oder Release im letzten JahrLast commit or release 2026-10-18github.com/timecyber/dexandroid ↗Bestanden
- OpenSSF ScorecardNicht geprüft
- Package-Name ähnelt keinem populären PackageNicht geprüft
- Kein kritischer Hinweis im Paket oder seinen AbhängigkeitenNicht geprüft
- Keine versteckten Anweisungen an das Modell15 tool descriptions and the README read; no override phrases, credential paths or hidden charactersBestanden
- Destruktive Tools sind markiertNo tool named like delete, drop or execBestanden
- Remote-Endpoint beantwortet den MCP-HandshakeNicht geprüft
README
Auf GitHub ansehenDexAndroid---Android Decompile MCP
English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Español · Français · Deutsch · Português · Русский · العربية · हिन्दी · Bahasa Indonesia · Tiếng Việt · ไทย · Italiano · Türkçe
⚠️ For learning and teaching purposes only. Do not use this project for any illegal activity, unauthorized cracking, copyright infringement, or bypassing third-party protections. You must follow local laws and the target app’s terms. You are solely responsible for misuse.
Android unpacking + smali analysis MCP Server. Use from Cursor / Codex / Claude Code to manage devices, detect packers, unpack (static / BlackDex / Frida), convert dex→smali, and search API strings.
Repo: https://github.com/TimeCyber/DexAndroid · npm: android-decompile-mcp
Quick start (npm + MCP)
1. No clone — download & run from npm:
npx -y android-decompile-mcp
2. Load into Cursor / Claude / Codex — paste into .cursor/mcp.json (or global MCP config):
{
"mcpServers": {
"android-decompile-mcp": {
"command": "npx",
"args": ["-y", "android-decompile-mcp"],
"env": {
"ADB_PATH": "adb",
"DEX_OUT_DIR": "./unpack-output"
}
}
}
}
Save → restart the client / reload MCP. Done.
Optional global install: npm i -g android-decompile-mcp then run android-decompile-mcp.
Features
| Capability | MCP tool | Notes |
|---|---|---|
| Devices | list_devices |
Connected ADB devices |
| Packages | list_packages |
Optional keyword filter |
| Packer detect | detect_packer |
360 / Tencent / Bangcle / ijiami / Alibaba, etc. |
| Pull APK | pull_apk |
Installed app (+ splits) |
| Static unpack | static_unpack |
Extract classes*.dex |
| No-Root unpack | blackdex_prepare / blackdex_pull |
BlackDex memory dump |
| Root unpack | frida_prepare / frida_unpack |
frida-server + frida-dexdump |
| Decompile | dex_to_smali |
baksmali → smali |
| Analyze | smali_list_classes / smali_read_class / smali_search |
List / read / regex |
| Entry locate | find_app_entry |
MAIN/LAUNCHER + smali onCreate (read-only) |
| Decode / rebuild | apk_decode / apk_repack |
apktool decode + rebuild/sign |
Unpacking methods
| Method | Root? | Use when |
|---|---|---|
| Static | No | Unpacked apps or shell/resources only |
| BlackDex | No | Most protected apps |
| Frida | Yes | Strong packers / fuller dumps |
Requirements
- Windows / macOS / Linux (docs use Windows examples)
- Node.js ≥ 18
- ADB on PATH, or set
ADB_PATH - Java 8+ (for baksmali via
dex_to_smali) - Optional: BlackDex; rooted device +
frida-server;pip install frida-tools frida-dexdump
Place baksmali fat jar / frida-server / BlackDex under local tools/ (large binaries are gitignored).
Local development build
git clone https://github.com/TimeCyber/DexAndroid.git
cd DexAndroid
npm install
npm run build
npm start
Environment variables
| Variable | Meaning | Default |
|---|---|---|
ADB_PATH |
adb executable | adb |
DEX_OUT_DIR |
Default output dir | <cwd>/unpack-output |
BAKSMALI_JAR |
baksmali jar | auto-discover under tools/ |
Typical workflows
1. Static unpack (fastest)
list_devicesor prepare localapkPath.detect_packer.static_unpack→classes*.dex.dex_to_smali→ smali folder.smali_search/smali_read_class.
Note: Protected apps often yield only the shell via static unpack—use BlackDex / Frida for business code.
2. No-Root (BlackDex)
list_devices.blackdex_preparewithblackdexApkPath.- Unpack the target app in BlackDex UI.
blackdex_pullwithtargetPkg.dex_to_smalithensmali_*.
3. Root (Frida)
- Rooted device (e.g. Magisk),
adbready. frida_prepareto push/starttools/frida-server.- Matching
frida/frida-dexdumplocally (prefer 16.x). frida_unpackwithpkg, preferspawn: true,deepSearch: true.dex_to_smalion output, then analyze.
If Frida 17 attach fails, align tools to 16.x; some devices need temporary setenforce 0.
4. smali analysis examples
smali_list_classes smaliDir=.../smali keyword=login
smali_search smaliDir=.../smali pattern=https?://|/api/|publicClient/
smali_read_class smaliDir=.../smali className=com.example.api.ApiService
Layout
DexAndroid/
├── src/ # MCP server (TypeScript)
│ ├── index.ts
│ ├── adb.ts
│ ├── detect.ts
│ ├── smali.ts
│ └── unpack/
├── dist/
├── examples/ # Damai / Huaxi sample smali.zip + docs
├── skills/ # Canonical agent skills (edit here, then sync)
├── .cursor/skills/ # Cursor copy
├── .agents/skills/ # Codex copy
├── .claude/skills/ # Claude Code copy
├── tools/ # baksmali / frida-server / BlackDex (local)
├── unpack-output/ # local dumps (gitignored)
├── package.json
└── README.md
Agent skills (Cursor / Codex / Claude Code)
After unpacking, use android-api-smali-analysis so the agent recovers headers, body, encrypt/decrypt methods, and keys (smali / .so / server-delivered), not path-only notes.
| Client | Skill path |
|---|---|
| Canonical | skills/android-api-smali-analysis/SKILL.md |
| Cursor | .cursor/skills/android-api-smali-analysis/ |
| Codex | .agents/skills/android-api-smali-analysis/ |
| Claude Code | .claude/skills/android-api-smali-analysis/ (/android-api-smali-analysis) |
Edit the canonical file, then sync copies:
node tools/sync-skills.mjs
See skills/README.md.
Decompile examples
See examples/ (smali shipped as zip):
| Sample | Path | Contents |
|---|---|---|
| Damai | examples/damai/ |
Frida smali.zip + API docs |
| Huaxi Maternity | examples/huaxi/ |
Static smali.zip (info.cd120.two) |
After unzip, run smali_list_classes / smali_search / smali_read_class.
MCP tool cheatsheet
| Tool | Params |
|---|---|
detect_packer |
apkPath or pkg, optional serial |
pull_apk |
pkg, optional outDir / serial |
static_unpack |
apkPath or pkg, optional outDir |
blackdex_prepare |
blackdexApkPath, optional serial |
blackdex_pull |
targetPkg, optional outDir / serial |
frida_prepare |
optional serial / serverLocalPath |
frida_unpack |
pkg, optional spawn / deepSearch / outDir |
dex_to_smali |
dexInput, optional outDir |
smali_list_classes |
smaliDir, optional keyword |
smali_read_class |
smaliDir, className |
smali_search |
smaliDir, pattern, optional flags / maxResults |
find_app_entry |
projectDir / manifestPath / apkPath, optional smaliDir(只读定位入口) |
apk_decode |
apkPath, optional outDir(apktool 解码) |
apk_repack |
projectDir, optional outApk / keystore 参数(重建并签名) |
smali_patch |
mode + smaliPath/projectDir;调用方 content 或 insert_verify_log |
FAQ
Q: Empty list_devices?
Check USB debugging, adb devices, pass serial if multiple.
Q: No business classes after static unpack?
Likely packed—use BlackDex or Frida.
Q: dex_to_smali failed?
Install Java; put baksmali jar in tools/ or set BAKSMALI_JAR.
Q: Frida jailed / version mismatch?
Keep frida-server and host frida major versions aligned; try 16.x.
Q: Where is output?
Default unpack-output/ (or DEX_OUT_DIR). Do not commit dumps.
Legal & disclaimer
This project is only for learning, teaching, and authorized security research. It is strictly forbidden to use it for any criminal or illegal activity, including unauthorized access, cracking, piracy, attacking systems, or IP infringement. Authors and contributors are not liable for misuse. By using this software you agree to these terms.
⚠️ For learning and teaching purposes only. Do not use this project for any illegal activity, unauthorized cracking, copyright infringement, or bypassing third-party protections. You must follow local laws and the target app’s terms. You are solely responsible for misuse.
License
MIT — see LICENSE.
DexAndroid MCP Fragen
Welche Tools bietet DexAndroid MCP?
Er stellt 15 Tools bereit, darunter detect_packer, pull_apk, static_unpack, blackdex_prepare, blackdex_pull.
Was soll ich tun, wenn list_devices leer zurückgegeben wird?
Überprüfe deine USB-Debugging-Einstellungen und führe 'adb devices' aus. Wenn mehrere Geräte angeschlossen sind, übergib die spezifische Seriennummer.
Warum gibt es nach einem statischen Unpack keine Business-Classes?
Die Anwendung wird wahrscheinlich durch einen Packer geschützt; du solltest stattdessen BlackDex oder Frida verwenden.
Wie behebe ich einen dex_to_smali Fehler?
Stelle sicher, dass Java installiert ist und lege die baksmali jar in das tools/ Verzeichnis oder gib den Pfad über die Umgebungsvariable BAKSMALI_JAR an.
Wo werden die entpackten Dateien gespeichert?
Dateien werden standardmäßig im Verzeichnis 'unpack-output/' gespeichert oder in dem Verzeichnis, das durch die Umgebungsvariable DEX_OUT_DIR angegeben ist.