Apktool

Un servidor para análisis de APK de Android e ingeniería inversa usando Apktool.

Documentación

Servidor MCP de Apktool

License: MIT Python 3.10+ MCP Compatible Gemini CLI

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

HerramientaDescripción
decode_apkDescompilar archivos APK para extraer todos los componentes
build_apkRecompilar APK desde el directorio fuente modificado
install_frameworkInstalar frameworks del sistema para análisis de aplicaciones del sistema
analyze_manifestAnalizar AndroidManifest.xml para permisos y componentes
extract_stringsExtraer recursos de cadenas con soporte de idiomas
list_permissionsEnumerar todos los permisos solicitados
find_smali_referencesBuscar patrones en código smali descompilado
get_apk_infoObtener 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