
Open-Source-Suite für mobile Sicherheitstests für iOS und Android. Zuvor Passionfruit
Toolkit zur Laufzeit-Instrumentierung mobiler Anwendungen, basierend auf Frida. Untersuchen, hooken und modifizieren Sie mobile Apps über eine webbasierte Oberfläche.
Jetzt werden sowohl iOS als auch Android unterstützt!
Erfordert einen auf Ihrem Gerät laufenden Frida-Server. Befolgen Sie zuerst die offiziellen Einrichtungsanleitungen(Android).
npm (empfohlen, erfordert Node.js 22.18+)
npm install -g igf
igf
Oder ohne Installation ausführen (erfordert Node.js 22.18+)
npx igf
Vorgefertigte Binärdateien für macOS, Linux und Windows sind auf GitHub Releases verfügbar. Sowohl die Quellcode-Entwicklung als auch die vorgefertigten ausführbaren Dateien verwenden Node.js; siehe den Entwicklungsleitfaden für den npm-Workflow.
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
Befehlszeilen-Flags haben Vorrang vor Umgebungsvariablen, wenn beide gesetzt sind.
Dieses Projekt enthält keine integrierten Bypasses für Anti-Tampering-Schutzmaßnahmen:
Begründung: RASP-Lösungen (Runtime Application Self-Protection) werden kontinuierlich weiterentwickelt, um Instrumentierungs-Frameworks zu erkennen. Die Aufrechterhaltung wirksamer Bypasses erfordert kontinuierlichen Aufwand, um mit neuen Erkennungsmethoden Schritt zu halten, was einen erheblichen Wartungsaufwand und potenzielle Stabilitätsprobleme mit sich bringt. Diese Bypasses sind zudem stark anwendungsspezifisch, was Allzwecklösungen fragil macht.
Statt fragiler integrierter Bypasses liegt der Fokus von Grapefruit auf Instrumentierungs- und Inspektionsfunktionen, die sich gut mit speziellen Bypass-Werkzeugen kombinieren lassen.
Empfohlene Ansätze für autorisierte Bewertungen, bei denen ein RASP-Bypass erforderlich ist:
Frida-Syscall-Tracer — Verwenden Sie frida-strace (Frida 17.8.0+), um Systemaufrufe im Zielprozess zu verfolgen. Dies hilft, Erkennungsartefakte zu identifizieren und festzustellen, welche Patches erforderlich sind, bevor Sie Grapefruit anhängen:
frida-strace -U -f com.example.app
Weitere Details finden Sie in den Versionshinweisen zu Frida 17.8.0.
Multi-Session-Architektur — Frida unterstützt mehrere Sitzungen, die an denselben Prozess angehängt werden. Starten Sie zunächst eine separate Sitzung mit Ihren RASP-Bypass-Skripten und starten Sie dann Grapefruit. Wenn Grapefruit erkennt, dass die Ziel-App bereits läuft, hängt es sich an den vorhandenen Prozess an, anstatt ihn neu zu starten, sodass bereits aktive Bypasses erhalten bleiben.
Grapefruit bindet standardmäßig an 127.0.0.1 und verfügt über keine integrierte Authentifizierung. Die Weboberfläche und die API sind für jeden lokalen Prozess zugänglich. Auch wenn Cross-Origin-Anfragen standardmäßig blockiert werden (keine CORS-Header, Socket.IO lehnt Cross-Origin-Verbindungen ab), ist dies allein für eine gemeinsam genutzte oder entfernte Umgebung nicht ausreichend.
Wenn Sie Remote-Zugriff oder Multi-User-Sicherheit benötigen, platzieren Sie Grapefruit hinter einem authentifizierten Reverse-Proxy wie Caddy für TLS, Zugriffskontrolle und Protokollierung. Setzen Sie Grapefruit ohne Authentifizierung nicht direkt dem Netzwerk aus.
| Variable | Beschreibung | Standard |
|---|
HOST | Server-Bindeadresse | 127.0.0.1 |
PORT | Server-Port | 31337 |
FRIDA_VERSION | Frida-Hauptversion (16 oder 17) | 17 |
FRIDA_TIMEOUT | Frida-Timeout für Operationen (ms) | 1000 |
PROJECT_DIR | Projektverzeichnis für Daten/Cache/Logs | .igf in cwd |
LLM_PROVIDER | KI-Anbieter (anthropic, openai, gemini, openrouter) | |
LLM_API_KEY | API-Schlüssel für den LLM-Anbieter | |
LLM_MODEL | Modellname (z. B. claude-sonnet-4-20250514) | |
LLM_BASE_URL | Benutzerdefinierter Endpunkt (überschreibt den Anbieterstandard) |