Grapefruit : suite open-source de test de sécurité mobile

Boîte à outils d'instrumentation d'applications mobiles à l'exécution propulsée par Frida.
Inspectez, hookez et modifiez des applications mobiles via une interface web.
Prend désormais en charge iOS et Android !
Démarrage rapide
Nécessite un serveur Frida en cours d'exécution sur votre appareil. Suivez d'abord les guides d'installation officiels(Android).
npm (recommandé, nécessite Node.js 22.18+)
npm install -g igf
igf
Ou exécuter sans installation (nécessite Node.js 22.18+)
npx igf
Binaires précompilés pour macOS, Linux et Windows sont disponibles sur GitHub Releases.
Le développement depuis les sources et les exécutables précompilés utilisent tous deux Node.js ; consultez le guide de développement pour le workflow npm.
Utilisation
igf [options] Start the server (default)
Options:
--frida <16 | 17> Frida version to use (default: 17)
--host <host> Host to bind (default: 127.0.0.1)
--port <port> Port to bind (default: 31337)
--project <path> Project directory for data/cache/logs (default: .igf in cwd)
--no-open Do not open browser on startup
--help, -h Show help message
Variables d'environnement
| Variable | Description | Default |
|---|
HOST | Server bind address | 127.0.0.1 |
PORT | Server port | 31337 |
FRIDA_VERSION | Frida major version (16 or 17) | 17 |
FRIDA_TIMEOUT | Frida operation timeout (ms) | 1000 |
PROJECT_DIR | Project directory for data/cache/logs | .igf in cwd |
LLM_PROVIDER | AI provider (anthropic, openai, gemini, openrouter) | |
LLM_API_KEY | API key for the LLM provider | |
LLM_MODEL | Model name (e.g. claude-sonnet-4-20250514) | |
LLM_BASE_URL | Custom endpoint (overrides provider default) | |
Les options de ligne de commande ont la priorité sur les variables d'environnement lorsque les deux sont définies.
Fonctionnalités
- Hooking de méthodes à l'exécution - Interceptez les fonctions natives et managées avec journalisation structurée
- Interception des API cryptographiques - Surveillez les opérations de chiffrement/déchiffrement avec capture des données
- Navigateur de système de fichiers - Naviguez, téléversez, téléchargez et inspectez des fichiers avec aperçu hex/texte
- Inspection de bases de données SQLite - Parcourez les tables, exécutez des requêtes et consultez les résultats
- Flux Syslog - Surveillance en temps réel des journaux système et de l'agent
- Rapport de crash de processus - Gestionnaire d'exceptions avec vidage des registres et backtrace
- Prise en charge de Flutter - Surveillez les canaux de méthodes de la plateforme et explorez les snapshots Dart AOT, fonctions, classes, chaînes, références et composants récupérés
- Prise en charge de React Native - Inspecteur de bridge et REPL d'injection JavaScript
- Scanner de mémoire - Recherchez et inspectez la mémoire des processus
- Moniteur de confidentialité - Suivez les accès aux API sensibles (caméra, microphone, localisation, capteurs, etc.)
- Inspecteur de threads - Affichez et gérez les threads des processus
- Navigateur de modules/symboles - Inspectez les modules chargés et les symboles exportés
- Analyse et décompilation - DEX, Flutter AOT, bytecode Hermes et code natif. Assistance IA disponible pour la génération de scripts de hook
iOS
- Accès et modification du Keychain
- Capture du trafic NSURL session (HTTP/HTTPS/WebSocket)
- Inspection de WebView et JSContext avec exécution JavaScript
- Vidage de la hiérarchie UI et mise en évidence des éléments
- Visionneuses Info.plist, entitlements et binary cookie
- Contournement de la biométrie (Touch ID / Face ID)
- Navigateur UserDefaults
- Surveillance du presse-papiers et des opérations sur les fichiers
- Usurpation de la géolocalisation
- Usurpation de l'identifiant de l'appareil
- Inspection des classes et méthodes Objective-C
- Descripteurs de fichiers ouverts et connexions réseau (lsof)
- Analyse de sécurité (PIE, ARC, stack canaries, chiffrement)
- Visionneuse de catalogue d'assets (Assets.car)
- Inspection des messages XPC/NSXPC
Android
- Décodeur AndroidManifest.xml et navigateur de composants (activities, services, receivers, providers)
- Inspection du Android Keystore avec attributs des clés
- Requête, insertion, mise à jour et suppression de content provider
- Traçage des appels JNI avec arguments, valeurs de retour et backtraces
- Inspection des classes Java (méthodes, champs, interfaces)
- Construction et lancement d'Intent
- Descripteurs de fichiers ouverts et connexions réseau (lsof)
- Capture du trafic HTTP (OkHttp, Volley, URLConnection)
- Navigateur de ressources
- Surveillance du presse-papiers et des SharedPreferences
- Surveillance des broadcast receivers
Documentation
Périmètre et non-objectifs
Ce projet n'inclut pas de contournements intégrés pour les protections anti-tampering :
- Contournement de la détection Frida
- Contournement du pinning de certificats SSL/TLS
- Contournement de la détection de jailbreak ou de root
Justification : Les solutions RASP (Runtime Application Self-Protection) évoluent continuellement pour détecter les frameworks d'instrumentation. Maintenir des contournements efficaces exige un effort continu pour suivre les nouvelles méthodes de détection, ce qui introduit une charge de maintenance importante et des problèmes de stabilité potentiels. Ces contournements sont également très spécifiques à chaque application, ce qui rend les solutions génériques fragiles.
Plutôt que de fournir des contournements intégrés fragiles, Grapefruit se concentre sur des capacités d'instrumentation et d'inspection qui se composent bien avec des outils de contournement dédiés.