DexAndroid MCPサーバー
コミット 2026年10月18日APKの展開、smaliのデコンパイル、パッカーの検出など、AIクライアントによるAndroidのリバースエンジニアリングを可能にします。
別名 TimeCyber/DexAndroid
- スター
- 2
- ツール
- 15
- ダウンロード数(30日間)
- —
- 最新バージョン
- —
- 最終コミット
- 2026年10月18日
- ライセンス
- MIT
DexAndroid MCPとは
DexAndroidはMCPサーバーです。 APKの展開、smaliのデコンパイル、パッカーの検出など、AIクライアントによるAndroidのリバースエンジニアリングを可能にします。. 15個のツールを提供しており、detect_packer, pull_apk, static_unpackなどがあります。
プロジェクトのREADMEから生成された概要
DexAndroid MCP server について
DexAndroidは、Cursor、Claude Code、CodexなどのAIクライアント内から、Androidのリバースエンジニアリングやsmali解析を実行できるようにします。このMCP serverは、セキュリティリサーチャーや開発者が接続されたADBデバイスを管理し、TencentやAlibabaなどの様々なパッカーを検出し、複数の手法を用いてアプリケーションを展開するためのツールセットを提供します。
ユーザーは、単純なファイル向けの静的展開、ルート化不要のメモリダンプ向けのBlackDex、またはルート化済みデバイスでの深い展開向けのFridaを選択できます。このサーバーは、baksmaliを使用してdexファイルをsmali形式に変換することを容易にし、詳細なコード検査を可能にします。デコンパイル後は、API文字列の検索、クラスのリスト表示、特定のsmaliファイルの読み取りを行い、アプリケーションのロジックを理解することができます。
セットアップには、Node.js、Java 8以上、およびシステムパスに設定されたADBが必要です。標準的なセットアップでも基本機能は動作しますが、高度な展開には、toolsディレクトリに配置されたfrida-serverやBlackDexなどのローカルバイナリが必要になります。展開されたすべてのファイルは、DEX_OUT_DIR環境変数で定義されたローカルディレクトリに保存されます。
できること
- 1アプリケーションパッカーの検出APKがBangcleやijiamiなどの特定のセキュリティプロバイダーによって保護されているかどうかを特定します。
- 2保護されたアプリケーションの展開静的な手法が失敗する場合、メモリダンプを使用して保護されたアプリからビジネスロジックを抽出します。
- 3APIエンドポイントの検索正規表現パターンを使用して、smaliコード内のネットワークURLや機密性の高いAPI文字列を見つけます。
- 4アプリケーションのエントリポイントの特定smaliディレクトリ内から、メインのランチャーアクティビティやonCreateメソッドを見つけます。
プロジェクトの README から作成されています。すべてのユースケースは、その引用と照らし合わせて確認されています。
DexAndroid MCPツール 15
READMEから検出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個のツールをすべて表示ツールを折りたたむ
apk_decodeapk_repacksmali_patch
| apk_decode | — | |
| apk_repack | — | |
| smali_patch | — |
設定
ADB_PATHDEX_OUT_DIR
| 名前 | 説明 | 種類 |
|---|---|---|
| ADB_PATH | — | |
| DEX_OUT_DIR | — |
自動チェック
実行日 2026年11月14日詳細レポート →まだ検証されていません。サーバーには80点のスコア、重大な問題がないこと、および検証に必要な十分なデータが必要です。 チェックの仕組み
- ソースリポジトリがリンクされており、アクセス可能timecyber/dexandroid is public and reachablegithub.com/timecyber/dexandroid ↗合格
- パッケージがこのリポジトリをソースとして示している未チェック
- ビルドの来歴(Sigstore 証明)未チェック
- オープンソースライセンス (OSI)MITspdx.org/licenses/MIT.html ↗合格
- 過去1年以内にコミットまたはリリースありLast commit or release 2026-10-18github.com/timecyber/dexandroid ↗合格
- OpenSSF Scorecard未チェック
- パッケージ名が有名なパッケージに酷似していない未チェック
- パッケージと依存関係に重大なアドバイザリがない未チェック
- モデルへの隠れた指示がない15 tool descriptions and the README read; no override phrases, credential paths or hidden characters合格
- 破壊的なツールがラベル付けされているNo tool named like delete, drop or exec合格
- リモート endpoint が MCP ハンドシェイクに応答する未チェック
README
GitHubで見る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のよくある質問
DexAndroid MCPが提供するツールは
15個のツールを提供しており、detect_packer, pull_apk, static_unpack, blackdex_prepare, blackdex_pullなどがあります。
list_devices が空を返す場合はどうすればよいですか?
USBデバッグの設定を確認し、'adb devices' を実行してください。複数のデバイスが接続されている場合は、特定のシリアル番号を指定してください。
静的展開(static unpack)の後にビジネスロジックのクラスが表示されないのはなぜですか?
アプリケーションがパッカーによって保護されている可能性があります。その場合は、BlackDexまたはFridaを使用してください。
dex_to_smali が失敗した場合はどうすればよいですか?
Javaがインストールされていることを確認し、baksmali jarをtools/ディレクトリに配置するか、BAKSMALI_JAR環境変数を使用してパスを指定してください。
展開されたファイルはどこに保存されますか?
ファイルはデフォルトで 'unpack-output/' ディレクトリに保存されるか、DEX_OUT_DIR環境変数で指定されたディレクトリに保存されます。