🚀 Apktool MCP Server
Apktool MCP Server 是一個強大的 模型上下文協議(MCP)服務器,它通過暴露 Apktool 的功能,實現對 Android APK 的分析和逆向工程。該服務器能夠與 Gemini CLI 無縫集成,藉助自然語言命令,提供由人工智能驅動的 APK 安全分析、隱私審計以及逆向工程指導。
🚀 快速開始
本項目需要 Java JDK 8+、Apktool 和 Python 3.10+ 作為前置依賴。你可以按照以下步驟完成安裝和配置:
- 安裝 Java JDK 8+(Apktool 所需)
sudo apt update && sudo apt install default-jdk
brew install openjdk
java -version
- 安裝 Apktool(核心依賴)
sudo apt install apktool
brew install apktool
apktool --version
- 確保 Python 版本為 3.10 或更高
python3 --version
- 克隆倉庫
git clone https://github.com/SecFathy/APktool-MCP.git
cd APktool-MCP
- 創建虛擬環境
python3 -m venv venv
source venv/bin/activate
venv\Scripts\activate
- 安裝依賴
pip install -r requirements.txt
- 測試安裝
python3 apktool_server.py
✨ 主要特性
🔍 全面的 APK 分析
- 反編譯 APK:提取資源、清單文件和 Smali 代碼。
- 分析權限:對應用組件進行安全評估。
- 提取字符串資源:檢測硬編碼的機密信息。
- 搜索 Smali 代碼:查找特定模式和安全漏洞。
- 重新編譯修改後的 APK:在完成修改後重新打包。
🤖 人工智能驅動的工作流程
- 自然語言命令:支持使用自然語言完成複雜的 APK 分析任務。
- 自動化安全審計:藉助人工智能生成洞察報告。
- 隱私合規性檢查:進行 GDPR/CCPA 分析。
- 逐步逆向工程指導:提供詳細的逆向工程步驟。
- 智能漏洞檢測:進行風險評估。
🛠 8 個核心工具
工具 |
描述 |
decode_apk |
反編譯 APK 文件以提取所有組件 |
build_apk |
從修改後的源目錄重新編譯 APK |
install_framework |
安裝系統框架以進行系統應用分析 |
analyze_manifest |
解析 AndroidManifest.xml 文件,獲取權限和組件信息 |
extract_strings |
提取支持多語言的字符串資源 |
list_permissions |
列舉所有請求的權限 |
find_smali_references |
在反編譯的 Smali 代碼中搜索特定模式 |
get_apk_info |
獲取 APK 的基本元數據和信息 |
📋 專業分析提示
- 安全分析:進行全面的漏洞評估。
- 隱私審計:分析數據收集和合規性。
- 逆向工程指南:提供逐步分析工作流程。
📦 安裝指南
前提條件
- Java JDK 8+:Apktool 運行所需。
- Apktool:核心依賴。
- Python 3.10+:確保版本符合要求。
安裝步驟
請參考上面“快速開始”部分的安裝步驟進行操作。
💻 使用示例
自然語言命令
gemini
> "Analyze the APK at ./suspicious_app.apk for security vulnerabilities"
> "What permissions does ./myapp.apk request and are any of them dangerous?"
> "Find any hardcoded API keys or secrets in ./social_app.apk"
> "Generate a privacy compliance report for ./messenger_app.apk"
> "Help me understand how the authentication works in ./banking_app.apk"
直接使用工具
> Use decode_apk to decompile ./sample.apk
> Use list_permissions on the decompiled directory ./sample
> Use find_smali_references to search for "crypto" in ./sample
> Use extract_strings from ./sample for locale "en"
> Use build_apk to recompile ./sample into ./sample_modified.apk
引導式工作流程
> Run the security analysis prompt on ./target_app.apk
> Execute privacy audit workflow for ./social_media_app.apk
> Use the reverse engineering guide for analyzing login functionality in ./app.apk
📚 詳細文檔
配置說明
Gemini CLI 集成
- 安裝 Gemini CLI
- 配置 MCP 服務器
編輯你的 Gemini CLI 配置文件:
- Linux/macOS:
~/.config/gemini-cli/config.json
- Windows:
%APPDATA%\gemini-cli\config.json
{
"mcpServers": {
"apktool": {
"command": "python3",
"args": ["/absolute/path/to/apktool_server.py"],
"env": {
"APKTOOL_WORK_DIR": "/path/to/workspace"
}
}
}
}
Claude Desktop 集成(可選)
編輯 Claude Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"apktool": {
"command": "python3",
"args": ["/absolute/path/to/apktool_server.py"],
"env": {
"APKTOOL_WORK_DIR": "/path/to/workspace"
}
}
}
}
項目結構
apktool-mcp-server/
├── apktool_server.py # 主 MCP 服務器實現
├── requirements.txt # Python 依賴
├── config.json # 示例 Gemini CLI 配置
├── README.md # 當前文件
├── GEMINI.md # 人工智能助手上下文文件
├── LICENSE # MIT 許可證
├── examples/ # 使用示例和樣本
│ ├── sample_analysis.py # 示例分析腳本
│ └── workflows/ # 常見工作流示例
├── tests/ # 單元測試
│ ├── test_server.py # 服務器功能測試
│ └── test_tools.py # 單個工具測試
└── docs/ # 附加文檔
├── SECURITY.md # 安全指南
├── CONTRIBUTING.md # 貢獻指南
└── TROUBLESHOOTING.md # 常見問題及解決方案
🔧 技術細節
🔒 安全注意事項
⚠️ 重要安全提示
- 法律合規:僅分析你擁有或獲得明確授權的 APK。
- 惡意軟件風險:未知的 APK 可能包含惡意代碼,請在隔離環境中使用。
- 數據隱私:反編譯的 APK 可能包含敏感的用戶信息。
- 工作區隔離:配置具有受限權限的專用工作區。
- 進程限制:服務器包含超時機制,以防止資源耗盡。
最佳實踐
export APKTOOL_WORK_DIR="/secure/isolated/workspace"
chmod 750 /secure/isolated/workspace
htop
rm -rf /secure/isolated/workspace/*
🧪 測試
運行單元測試
pip install pytest pytest-asyncio
pytest tests/
pytest --cov=apktool_server tests/
手動測試
python3 apktool_server.py
集成測試
gemini
> /tools
> Use decode_apk to analyze sample.apk
🤝 貢獻說明
我們歡迎大家貢獻代碼!具體細節請參考 CONTRIBUTING.md。
開發環境設置
git clone https://github.com/SecFathy/APktool-MCP.git
cd APktool-MCP
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-dev.txt
pytest
black apktool_server.py
📄 許可證
本項目採用 MIT 許可證。