Grapefruit : Suite open-source de tests de sécurité mobile

Boîte à outils d'instrumentation d'applications mobiles au moment de l'exécution, propulsée par Frida.
Inspectez, interceptez et modifiez des applications mobiles via une interface Web.
Elle prend désormais en charge iOS et Android !
Démarrage rapide
Nécessite un serveur Frida exécuté 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écutez sans installation (nécessite Node.js 22.18+)
npx igf
Binaires précompilés pour macOS, Linux et Windows disponibles sur GitHub Releases.
Le développement à partir des sources comme les exécutables précompilés utilisent Node.js ; voir le guide de développement pour le flux de travail npm.
Utilisation
igf [options] Démarre le serveur (par défaut)
Options :
--frida <16 | 17> Version de Frida à utiliser (par défaut : 17)
--host <host> Hôte à utiliser (par défaut : 127.0.0.1)
--port <port> Port à utiliser (par défaut : 31337)
--project <path> Répertoire du projet pour données/cache/journaux (par défaut : .igf dans le cwd)
--no-open Ne pas ouvrir le navigateur au démarrage
--help, -h Affiche le message d'aide
Variables d'environnement
| Variable | Description | Défaut |
|---|
HOST | Adresse de liaison du serveur | 127.0.0.1 |
PORT | Port du serveur | 31337 |
FRIDA_VERSION | Version majeure de Frida (16 ou 17) | 17 |
FRIDA_TIMEOUT | Délai d'attente des opérations Frida (ms) | 1000 |
PROJECT_DIR | Répertoire du projet pour données/cache/journaux | .igf dans le cwd |
LLM_PROVIDER | Fournisseur d'IA (anthropic, openai, gemini, openrouter) | |
LLM_API_KEY | Clé API pour le fournisseur LLM | |
LLM_MODEL | Nom du modèle (p. ex. claude-sonnet-4-20250514) | |
LLM_BASE_URL | Point de terminaison personnalisé (remplace le défaut du fournisseur) | |
Les options en ligne de commande priment sur les variables d'environnement lorsque les deux sont définies.
Fonctionnalités
- Interception de méthodes à l'exécution - Interceptez les fonctions natives et managées avec une journalisation structurée
- Interception d'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 hexadécimal/texte
- Inspection de bases de données SQLite - Parcourez les tables, exécutez des requêtes et visualisez les résultats
- Diffusion de syslog - Surveillance en temps réel des journaux système et de l'agent
- Rapports d'arrêt brutal des processus - Gestionnaire d'exceptions avec vidage des registres et backtrace
- Prise en charge de Flutter - Surveillez les communications du canal de méthodes de la plateforme sur les deux plateformes
- Prise en charge de React Native - Inspecteur de pont 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 - Visualisez 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, bytecode Hermes et code natif. Assistance IA disponible pour la génération de scripts d'interception
iOS
- Accès et modification au trousseau (Keychain)
- Capture du trafic des sessions NSURL (HTTP/HTTPS/WebSocket)
- Inspection de WebView et JSContext avec exécution JavaScript
- Vidage de la hiérarchie de l'interface et surlignage des éléments
- Visualiseurs Info.plist, entitlements et cookies binaires
- Contournement biométrique (Touch ID / Face ID)
- Navigateur UserDefaults
- Surveillance des opérations sur le presse-papiers et les fichiers
- Usurpation de géolocalisation
- Usurpation d'identifiant d'appareil
- Inspection des classes et méthodes Objective-C
- Handles de fichiers ouverts et connexions réseau (lsof)
- Analyse de sécurité (PIE, ARC, stack canaries, chiffrement)
- Visualiseur de catalogue d'assets (Assets.car)
- Inspection des messages XPC/NSXPC
Android
- Décodeur AndroidManifest.xml et navigateur de composants (activités, services, récepteurs, fournisseurs)
- Inspection du Keystore Android avec attributs des clés
- Requête, insertion, mise à jour et suppression sur les fournisseurs de contenu
- Traçage des appels JNI avec arguments, valeurs de retour et backtraces
- Inspection des classes Java (méthodes, champs, interfaces)
- Construction et lancement d'intents
- Handles 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 récepteurs de diffusion (broadcast)
Documentation
Périmètre et objectifs non visés
Ce projet n'inclut pas de contournements intégrés pour les protections anti-altération :
- Contournement de la détection de Frida
- Contournement de l'épinglage de certificats SSL/TLS
- Contournement de la détection de jailbreak ou de root
Justification : Les solutions RASP (Runtime Application Self-Protection) évoluent en permanence 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 risques potentiels de stabilité. Ces contournements sont également très spécifiques à chaque application, ce qui rend fragiles les solutions généralistes.