DexAndroid MCP sunucusu
Commit 18 Eki 2026AI istemcilerinin APK açma, smali dekompilasyonu ve packer tespiti dahil olmak üzere Android tersine mühendislik işlemleri yapmasını sağlar.
Ayrıca bilinen adı TimeCyber/DexAndroid
- Yıldızlar
- 2
- Araçlar
- 15
- İndirmeler, 30 gün
- —
- En son sürüm
- —
- Son commit
- 18 Eki 2026
- Lisans
- MIT
DexAndroid MCP nedir?
DexAndroid bir MCP sunucusudur. AI istemcilerinin APK açma, smali dekompilasyonu ve packer tespiti dahil olmak üzere Android tersine mühendislik işlemleri yapmasını sağlar. 15 araç sunar; örneğin detect_packer, pull_apk, static_unpack.
Özet, projenin README dosyasından oluşturuldu
DexAndroid MCP sunucusu hakkında
DexAndroid; Cursor, Claude Code veya Codex gibi AI istemcileri üzerinden Android tersine mühendislik ve smali analizi yapmanıza olanak tanır. Bu MCP server, güvenlik araştırmacıları ve geliştiriciler için bağlı ADB cihazlarını yönetme, Tencent veya Alibaba gibi çeşitli packer'ları tespit etme ve farklı metodolojiler kullanarak uygulamaları açma konusunda bir araç seti sunar.
Kullanıcılar; basit dosyalar için statik açma, root gerektirmeyen bellek dökümleri (memory dumps) için BlackDex veya rootlu cihazlarda derinlemesine açma işlemleri için Frida arasında seçim yapabilirler. Sunucu, baksmali kullanarak dex dosyalarının smali formatına dönüştürülmesini kolaylaştırarak ayrıntılı kod incelemesine imkan tanır. Dekompile edildikten sonra sistem; uygulama mantığını anlamak için API dizelerini arama, sınıfları listeleme ve belirli smali dosyalarını okuma özelliklerini destekler.
Kurulum için sistem yolunuzda (path) Node.js, Java 8 veya üzeri ve ADB bulunmalıdır. Temel işlevler standart kurulumlarla çalışırken, gelişmiş açma işlemleri için frida-server veya BlackDex gibi yerel ikili dosyaların bir tools dizinine yerleştirilmesi gerekir. Tüm açılan dosyalar, DEX_OUT_DIR ortam değişkeni ile tanımlanan yerel bir dizine kaydedilir.
Neler yapabilirsiniz
- 1Uygulama packer'larını tespit etmeBir APK'nın Bangcle veya ijiami gibi belirli güvenlik sağlayıcıları tarafından korunup korunmadığını belirleyin.
- 2Korumalı uygulamaları açmaStatik yöntemler başarısız olduğunda, bellek dökümleri kullanarak korumalı uygulamalardan iş mantığını çıkarın.
- 3API uç noktalarını aramaSmali kodu içindeki ağ URL'lerini veya hassas API dizelerini bulmak için regex desenlerini kullanın.
- 4Uygulama giriş noktalarını belirlemeSmali dizini içindeki ana başlatıcı aktiviteyi (main launcher activity) ve onCreate metodunu bulun.
Projenin README dosyasından alınmıştır. Her kullanım durumu, oradaki bir alıntı ile kontrol edilir.
DexAndroid MCP araçları 15
README dosyasından algılandıdetect_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 | — |
15 aracın tümünü gösterDaha az araç göster
apk_decodeapk_repacksmali_patch
| apk_decode | — | |
| apk_repack | — | |
| smali_patch | — |
Yapılandırma
ADB_PATHDEX_OUT_DIR
| Ad | Açıklama | Sunucu |
|---|---|---|
| ADB_PATH | — | |
| DEX_OUT_DIR | — |
Otomatik kontroller
Çalıştırıldı 14 Kas 2026Tam rapor →Henüz doğrulanmadı. Bir sunucunun 80 puana, ciddi bir bulgu olmamasına ve kontrol edebilmemiz için yeterli veriye ihtiyacı vardır. Kontroller nasıl çalışır
- Kaynak deposu bağlantılı ve erişilebilirtimecyber/dexandroid is public and reachablegithub.com/timecyber/dexandroid ↗Geçti
- Paket bu depoyu kaynak olarak gösteriyorKontrol edilmedi
- Derleme kaynağı (Sigstore onayı)Kontrol edilmedi
- Açık kaynak lisansı (OSI)MITspdx.org/licenses/MIT.html ↗Geçti
- Son bir yıl içinde commit veya sürüm mevcutLast commit or release 2026-10-18github.com/timecyber/dexandroid ↗Geçti
- OpenSSF ScorecardKontrol edilmedi
- Paket adı popüler bir pakete yakın değilKontrol edilmedi
- Pakette ve bağımlılıklarında kritik uyarı yokKontrol edilmedi
- Modele yönelik gizli talimat yok15 tool descriptions and the README read; no override phrases, credential paths or hidden charactersGeçti
- Yıkıcı araçlar etiketlenmişNo tool named like delete, drop or execGeçti
- Uzak endpoint MCP el sıkışmasına yanıt veriyorKontrol edilmedi
DexAndroid---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 soruları
DexAndroid MCP hangi araçları sunar?
15 araç sunar; bunlar arasında detect_packer, pull_apk, static_unpack, blackdex_prepare, blackdex_pull yer alır.
list_devices komutu boş dönerse ne yapmalıyım?
USB hata ayıklama ayarlarınızı kontrol edin ve 'adb devices' komutunu çalıştırın. Birden fazla cihaz bağlıysa, ilgili seri numarasını iletin.
Statik açma (static unpack) işleminden sonra neden iş sınıfları (business classes) görünmüyor?
Uygulama muhtemelen bir packer tarafından korunuyor; bunun yerine BlackDex veya Frida kullanmalısınız.
dex_to_smali hatasını nasıl düzeltebilirim?
Java'nın kurulu olduğundan emin olun ve baksmali jar dosyasını tools/ dizinine yerleştirin veya BAKSMALI_JAR ortam değişkenini kullanarak yolu belirtin.
Açılan dosyalar nereye kaydediliyor?
Dosyalar varsayılan olarak 'unpack-output/' dizinine veya DEX_OUT_DIR ortam değişkeni ile belirtilen dizine kaydedilir.