Apktool
Um servidor para análise e engenharia reversa de APKs Android usando Apktool.
Documentação
Servidor MCP Apktool
Um poderoso servidor Model Context Protocol (MCP) que expõe a funcionalidade do Apktool para análise de APKs Android e engenharia reversa. Integra-se perfeitamente com o Gemini CLI para fornecer análise de segurança de APKs com IA, auditoria de privacidade e orientação de engenharia reversa por meio de comandos em linguagem natural.
🚀 Recursos
🔍 Análise Abrangente de APKs
- Descompilar APKs para extrair recursos, manifesto e código smali
- Analisar permissões e componentes de aplicativos para avaliação de segurança
- Extrair recursos de string e detectar segredos codificados
- Pesquisar código smali para padrões específicos e vulnerabilidades de segurança
- Recompilar APKs modificados após fazer alterações
🤖 Fluxos de Trabalho com IA
- Comandos em linguagem natural para tarefas complexas de análise de APKs
- Auditorias de segurança automatizadas com insights gerados por IA
- Verificação de conformidade de privacidade e análise GDPR/CCPA
- Orientação passo a passo de engenharia reversa
- Detecção inteligente de vulnerabilidades e avaliação de riscos
🛠 8 Ferramentas Principais
| Ferramenta | Descrição |
|---|---|
decode_apk | Descompilar arquivos APK para extrair todos os componentes |
build_apk | Recompilar APK a partir do diretório de origem modificado |
install_framework | Instalar frameworks do sistema para análise de aplicativos do sistema |
analyze_manifest | Analisar AndroidManifest.xml para permissões e componentes |
extract_strings | Extrair recursos de string com suporte a localidade |
list_permissions | Enumerar todas as permissões solicitadas |
find_smali_references | Pesquisar padrões no código smali descompilado |
get_apk_info | Obter metadados e informações básicas do APK |
📋 Prompts de Análise Especializados
- Análise de Segurança: Avaliação abrangente de vulnerabilidades
- Auditoria de Privacidade: Análise de coleta de dados e conformidade
- Guia de Engenharia Reversa: Fluxos de trabalho de análise passo a passo
📦 Instalação
Pré-requisitos
1. Java JDK 8+ (Exigido pelo Apktool)
# Ubuntu/Debian
sudo apt update && sudo apt install default-jdk
# macOS (Homebrew)
brew install openjdk
# Verify installation
java -version
2. Apktool (Dependência 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
Instruções de Configuração
1. Clonar o repositório
git clone https://github.com/SecFathy/APktool-MCP.git
cd APktool-MCP
2. Criar ambiente virtual
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# or
venv\Scripts\activate # Windows
3. Instalar dependências
pip install -r requirements.txt
4. Testar a instalação
python3 apktool_server.py
# Should start the MCP server successfully
⚙️ Configuração
Integração com Gemini CLI
1. Instalar Gemini CLI
# Follow instructions at https://github.com/google-gemini/gemini-cli
2. Configurar o Servidor MCP
Edite o arquivo de configuração do 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"
}
}
}
}
Integração com Claude Desktop (Alternativa)
Edite a configuração do 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"
}
}
}
}
🎯 Exemplos de Uso
Comandos em Linguagem 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 Direto de Ferramentas
# 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
Fluxos de Trabalho 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
📁 Estrutura do Projeto
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
🔒 Considerações de Segurança
⚠️ Notas Importantes de Segurança
- Conformidade Legal: Analise apenas APKs que você possui ou para os quais tem permissão explícita de análise
- Risco de Malware: APKs desconhecidos podem conter código malicioso - use em ambientes isolados
- Privacidade de Dados: APKs descompilados podem conter informações sensíveis de usuários
- Isolamento do Ambiente de Trabalho: Configure um ambiente de trabalho dedicado com permissões restritas
- Limites de Processamento: O servidor inclui tempos limite para evitar esgotamento de recursos
Melhores Práticas
# 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/*
🧪 Testes
Executar Testes Unitários
# Install test dependencies
pip install pytest pytest-asyncio
# Run all tests
pytest tests/
# Run with coverage
pytest --cov=apktool_server tests/
Testes Manuais
# Test server startup
python3 apktool_server.py
# Test with sample APK
# Download a sample APK and test basic functionality
Testes de Integração
# Test Gemini CLI integration
gemini
> /tools # Should list apktool tools
> Use decode_apk to analyze sample.apk
🤝 Contribuições
Aceitamos contribuições! Consulte CONTRIBUTING.md para detalhes.
Configuração de Desenvolvimento
# 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