Apktool
Un servidor para análisis de APK de Android e ingeniería inversa usando Apktool.
Documentación
Servidor MCP de Apktool
Un potente servidor de Protocolo de Contexto de Modelo (MCP) que expone la funcionalidad de Apktool para el análisis de APKs de Android y la ingeniería inversa. Se integra perfectamente con Gemini CLI para proporcionar análisis de seguridad de APKs impulsado por IA, auditoría de privacidad y orientación en ingeniería inversa mediante comandos en lenguaje natural.
🚀 Características
🔍 Análisis Integral de APKs
- Descompilar APKs para extraer recursos, manifiesto y código smali
- Analizar permisos y componentes de aplicaciones para evaluación de seguridad
- Extraer recursos de cadenas y detectar secretos codificados
- Buscar en código smali patrones específicos y vulnerabilidades de seguridad
- Recompilar APKs modificados después de realizar cambios
🤖 Flujos de Trabajo Impulsados por IA
- Comandos en lenguaje natural para tareas complejas de análisis de APKs
- Auditorías de seguridad automatizadas con información generada por IA
- Verificación de cumplimiento de privacidad y análisis de GDPR/CCPA
- Orientación paso a paso en ingeniería inversa
- Detección inteligente de vulnerabilidades y evaluación de riesgos
🛠 8 Herramientas Principales
| Herramienta | Descripción |
|---|---|
decode_apk | Descompilar archivos APK para extraer todos los componentes |
build_apk | Recompilar APK desde el directorio fuente modificado |
install_framework | Instalar frameworks del sistema para análisis de aplicaciones del sistema |
analyze_manifest | Analizar AndroidManifest.xml para permisos y componentes |
extract_strings | Extraer recursos de cadenas con soporte de idiomas |
list_permissions | Enumerar todos los permisos solicitados |
find_smali_references | Buscar patrones en código smali descompilado |
get_apk_info | Obtener metadatos e información básica del APK |
📋 Indicaciones de Análisis Especializadas
- Análisis de Seguridad: Evaluación integral de vulnerabilidades
- Auditoría de Privacidad: Análisis de recopilación de datos y cumplimiento
- Guía de Ingeniería Inversa: Flujos de trabajo de análisis paso a paso
📦 Instalación
Requisitos Previos
1. Java JDK 8+ (Requerido por Apktool)
# Ubuntu/Debian
sudo apt update && sudo apt install default-jdk
# macOS (Homebrew)
brew install openjdk
# Verify installation
java -version
2. Apktool (Dependencia principal)
# Option 1: Package manager (recommended)
# Ubuntu/Debian
sudo apt install apktool
# macOS
brew install apktool
# Option 2: Manual installation
# Download from https://ibotpeaches.github.io/Apktool/install/
# Verify installation
apktool --version
3. Python 3.10+
python3 --version # Should be 3.10 or higher
Instrucciones de Configuración
1. Clonar el repositorio
git clone https://github.com/SecFathy/APktool-MCP.git
cd APktool-MCP
2. Crear entorno virtual
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# or
venv\Scripts\activate # Windows
3. Instalar dependencias
pip install -r requirements.txt
4. Probar la instalación
python3 apktool_server.py
# Should start the MCP server successfully
⚙️ Configuración
Integración con Gemini CLI
1. Instalar Gemini CLI
# Follow instructions at https://github.com/google-gemini/gemini-cli
2. Configurar el Servidor MCP
Edite su archivo de configuración de 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"
}
}
}
}
Integración con Claude Desktop (Alternativa)
Edite la configuración de 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"
}
}
}
}
🎯 Ejemplos de Uso
Comandos en Lenguaje Natural
# Start Gemini CLI
gemini
# Security Analysis
> "Analyze the APK at ./suspicious_app.apk for security vulnerabilities"
# Permission Analysis
> "What permissions does ./myapp.apk request and are any of them dangerous?"
# Code Analysis
> "Find any hardcoded API keys or secrets in ./social_app.apk"
# Privacy Audit
> "Generate a privacy compliance report for ./messenger_app.apk"
# Reverse Engineering
> "Help me understand how the authentication works in ./banking_app.apk"
Uso Directo de Herramientas
# Decompile an APK
> Use decode_apk to decompile ./sample.apk
# Analyze permissions
> Use list_permissions on the decompiled directory ./sample
# Search for patterns
> Use find_smali_references to search for "crypto" in ./sample
# Extract strings
> Use extract_strings from ./sample for locale "en"
# Rebuild APK
> Use build_apk to recompile ./sample into ./sample_modified.apk
Flujos de Trabajo Guiados
# Run automated security analysis
> Run the security analysis prompt on ./target_app.apk
# Perform privacy audit
> Execute privacy audit workflow for ./social_media_app.apk
# Get reverse engineering guidance
> Use the reverse engineering guide for analyzing login functionality in ./app.apk
📁 Estructura del Proyecto
apktool-mcp-server/
├── apktool_server.py # Main MCP server implementation
├── requirements.txt # Python dependencies
├── config.json # Example Gemini CLI configuration
├── README.md # This file
├── GEMINI.md # AI assistant context file
├── LICENSE # MIT license
├── examples/ # Usage examples and samples
│ ├── sample_analysis.py # Example analysis scripts
│ └── workflows/ # Common workflow examples
├── tests/ # Unit tests
│ ├── test_server.py # Server functionality tests
│ └── test_tools.py # Individual tool tests
└── docs/ # Additional documentation
├── SECURITY.md # Security guidelines
├── CONTRIBUTING.md # Contribution guidelines
└── TROUBLESHOOTING.md # Common issues and solutions
🔒 Consideraciones de Seguridad
⚠️ Notas de Seguridad Importantes
- Cumplimiento Legal: Solo analice APKs que posea o para las cuales tenga permiso explícito de análisis
- Riesgo de Malware: Los APKs desconocidos pueden contener código malicioso: utilícelos en entornos aislados
- Privacidad de Datos: Los APKs descompilados pueden contener información sensible de usuarios
- Aislamiento del Espacio de Trabajo: Configure un espacio de trabajo dedicado con permisos restringidos
- Límites de Proceso: El servidor incluye tiempos de espera para prevenir el agotamiento de recursos
Mejores Prácticas
# Use dedicated workspace
export APKTOOL_WORK_DIR="/secure/isolated/workspace"
# Set appropriate permissions
chmod 750 /secure/isolated/workspace
# Monitor resource usage
htop # Watch memory and CPU during analysis
# Clean up after analysis
rm -rf /secure/isolated/workspace/*
🧪 Pruebas
Ejecutar Pruebas Unitarias
# Install test dependencies
pip install pytest pytest-asyncio
# Run all tests
pytest tests/
# Run with coverage
pytest --cov=apktool_server tests/
Pruebas Manuales
# Test server startup
python3 apktool_server.py
# Test with sample APK
# Download a sample APK and test basic functionality
Pruebas de Integración
# Test Gemini CLI integration
gemini
> /tools # Should list apktool tools
> Use decode_apk to analyze sample.apk
🤝 Contribuciones
¡Agradecemos las contribuciones! Consulte CONTRIBUTING.md para más detalles.
Configuración de Desarrollo
# Clone and setup development environment
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
# Run tests
pytest
# Format code
black apktool_server.py