Grapefruit: Suite de pruebas de seguridad móvil de código abierto

Kit de instrumentación de aplicaciones móviles en tiempo de ejecución impulsado por Frida.
Inspecciona, engancha y modifica aplicaciones móviles mediante una interfaz web.
¡Ahora es compatible con iOS y Android!
Inicio rápido
Requiere que el servidor de Frida se esté ejecutando en tu dispositivo. Sigue primero las guías oficiales de configuración(Android).
npm (recomendado, requiere Node.js 22.18+)
npm install -g igf
igf
O ejecútalo sin instalarlo (requiere Node.js 22.18+)
npx igf
Binarios precompilados para macOS, Linux y Windows están disponibles en GitHub Releases.
Tanto el desarrollo desde el código fuente como los ejecutables precompilados usan Node.js; consulta la guía de desarrollo para el flujo de trabajo con npm.
Uso
igf [options] Inicia el servidor (predeterminado)
Options:
--frida <16 | 17> Versión de Frida a usar (predeterminado: 17)
--host <host> Host al que vincularse (predeterminado: 127.0.0.1)
--port <port> Puerto al que vincularse (predeterminado: 31337)
--project <path> Directorio del proyecto para datos/caché/registros (predeterminado: .igf en cwd)
--no-open No abrir el navegador al iniciar
--help, -h Mostrar mensaje de ayuda
Variables de entorno
| Variable | Descripción | Predeterminado |
|---|
HOST | Dirección de enlace del servidor | 127.0.0.1 |
PORT | Puerto del servidor | 31337 |
FRIDA_VERSION | Versión principal de Frida (16 o 17) | 17 |
FRIDA_TIMEOUT | Tiempo de espera de las operaciones de Frida (ms) | 1000 |
PROJECT_DIR | Directorio del proyecto para datos/caché/registros | .igf en cwd |
LLM_PROVIDER | Proveedor de IA (anthropic, openai, gemini, openrouter) | |
LLM_API_KEY | Clave de API para el proveedor de LLM | |
LLM_MODEL | Nombre del modelo (p. ej. claude-sonnet-4-20250514) | |
LLM_BASE_URL | Endpoint personalizado (reemplaza el predeterminado del proveedor) | |
Los indicadores de línea de comandos tienen prioridad sobre las variables de entorno cuando ambos están configurados.
Características
- Intercepción de métodos en tiempo de ejecución - Intercepta funciones nativas y gestionadas con registro estructurado
- Intercepción de la API criptográfica - Supervisa operaciones de cifrado/descifrado con captura de datos
- Explorador de sistema de archivos - Navega, sube, descarga e inspecciona archivos con vista previa hexadecimal/texto
- Inspección de bases de datos SQLite - Examina tablas, ejecuta consultas y visualiza resultados
- Transmisión de syslog - Monitoreo en tiempo real de registros del sistema y del agente
- Informes de fallos de procesos - Manejador de excepciones con volcado de registros y trazado de pila
- Compatibilidad con Flutter - Supervisa la comunicación del canal de métodos de la plataforma en ambas plataformas
- Compatibilidad con React Native - Inspector de puente y REPL de inyección de JavaScript
- Escáner de memoria - Busca e inspecciona la memoria de los procesos
- Monitor de privacidad - Rastrea el acceso a API sensibles (cámara, micrófono, ubicación, sensores, etc.)
- Inspector de hilos - Visualiza y gestiona los hilos de los procesos
- Explorador de módulos/símbolos - Inspecciona los módulos cargados y los símbolos exportados
- Análisis y descompilación - Código DEX, bytecode de Hermes y código nativo. Asistencia de IA disponible para la generación de scripts de hook
iOS
- Acceso y modificación del llavero (Keychain)
- Captura de tráfico de sesiones NSURL (HTTP/HTTPS/WebSocket)
- Inspección de WebView y JSContext con ejecución de JavaScript
- Volcado de la jerarquía de la interfaz y resaltado de elementos
- Visores de Info.plist, entitlements y cookies binarias
- Omisión de biometría (Touch ID / Face ID)
- Explorador de UserDefaults
- Monitoreo de operaciones de portapapeles y archivos
- Suplantación de geolocalización
- Suplantación del ID de dispositivo
- Inspección de clases y métodos de Objective-C
- Manejadores de archivos abiertos y conexiones de red (lsof)
- Análisis de seguridad (PIE, ARC, canarios de pila, cifrado)
- Visor de catálogo de recursos (Assets.car)
- Inspección de mensajes XPC/NSXPC
Android
- Decodificador de AndroidManifest.xml y explorador de componentes (actividades, servicios, receptores, proveedores)
- Inspección de Android Keystore con atributos de claves
- Consulta, inserción, actualización y eliminación en content providers
- Rastreo de llamadas JNI con argumentos, valores de retorno y trazados de pila
- Inspección de clases Java (métodos, campos, interfaces)
- Creación y lanzamiento de Intents
- Manejadores de archivos abiertos y conexiones de red (lsof)
- Captura de tráfico HTTP (OkHttp, Volley, URLConnection)
- Explorador de recursos
- Monitoreo de portapapeles y SharedPreferences
- Monitoreo de receptores de difusión
Documentación
Alcance y no objetivos
Este proyecto no incluye omisiones integradas para protecciones anti-manipulación:
- Omisión de detección de Frida
- Omisión de fijación de certificados SSL/TLS
- Omisión de detección de jailbreak o root
Justificación: Las soluciones RASP (protección automática de aplicaciones en tiempo de ejecución) evolucionan continuamente para detectar marcos de instrumentación. Mantener omisiones efectivas requiere un esfuerzo constante para seguir el ritmo de los nuevos métodos de detección, lo que introduce una carga de mantenimiento significativa y posibles problemas de estabilidad. Estas omisiones también son muy específicas de cada aplicación, lo que hace que las soluciones de propósito general sean frágiles.