
Suite di test di sicurezza mobile open-source per iOS e Android. Precedentemente Passionfruit
Toolkit di strumentazione runtime per applicazioni mobile basato su Frida. Ispeziona, applica hook e modifica le app mobile tramite un'interfaccia web.
Ora supporta sia iOS che Android!
Richiede il server Frida in esecuzione sul dispositivo. Segui prima le guide di configurazione ufficiali(Android).
npm (consigliato, richiede Node.js 22.18+)
npm install -g igf
igf
Oppure esegui senza installare (richiede Node.js 22.18+)
npx igf
Binari precompilati per macOS, Linux e Windows sono disponibili su GitHub Releases. Sia lo sviluppo da sorgente che gli eseguibili precompilati utilizzano Node.js; consulta la guida allo sviluppo per il flusso di lavoro npm.
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
I flag della riga di comando hanno precedenza sulle variabili d'ambiente quando entrambi sono impostati.
Questo progetto non include bypass integrati per le protezioni anti-manomissione:
Motivazione: le soluzioni RASP (Runtime Application Self-Protection) si evolvono continuamente per rilevare i framework di strumentazione. Mantenere bypass efficaci richiede uno sforzo costante per stare al passo con i nuovi metodi di rilevamento, introducendo un onere di manutenzione significativo e potenziali problemi di stabilità. Questi bypass sono inoltre altamente specifici per applicazione, rendendo fragili le soluzioni generiche.
Piuttosto che fornire bypass integrati fragili, Grapefruit si concentra su capacità di strumentazione e ispezione che si integrano bene con strumenti di bypass dedicati.
Approcci consigliati per valutazioni autorizzate in cui è richiesto il bypass RASP:
Frida Syscall Tracer — Usa frida-strace (Frida 17.8.0+) per tracciare le chiamate di sistema nel processo target. Questo aiuta a identificare gli artefatti di rilevamento e a determinare le patch necessarie prima di collegare Grapefruit:
frida-strace -U -f com.example.app
Consulta le note di rilascio di Frida 17.8.0 per i dettagli.
Architettura multi-sessione — Frida supporta più sessioni collegate allo stesso processo. Avvia prima una sessione separata con i tuoi script di bypass RASP, poi avvia Grapefruit. Quando Grapefruit rileva che l'app target è già in esecuzione, si collega al processo esistente anziché riavviarlo, preservando tutti i bypass già attivi.
Grapefruit si collega a 127.0.0.1 per impostazione predefinita e non dispone di autenticazione integrata. L'interfaccia web e l'API sono accessibili a qualsiasi processo locale. Sebbene le richieste cross-origin siano bloccate per impostazione predefinita (nessuna intestazione CORS, Socket.IO rifiuta le connessioni cross-origin), questo da solo non è sufficiente per un ambiente condiviso o remoto.
Se hai bisogno di accesso remoto o sicurezza multi-utente, metti Grapefruit dietro un reverse proxy autenticato come Caddy per TLS, controllo degli accessi e logging. Non esporre Grapefruit direttamente alla rete senza autenticazione.
| Variabile | Descrizione | Predefinito |
|---|
HOST | Indirizzo di binding del server | 127.0.0.1 |
PORT | Porta del server | 31337 |
FRIDA_VERSION | Versione principale di Frida (16 o 17) | 17 |
FRIDA_TIMEOUT | Timeout operazioni Frida (ms) | 1000 |
PROJECT_DIR | Directory di progetto per dati/cache/log | .igf nella cwd |
LLM_PROVIDER | Provider IA (anthropic, openai, gemini, openrouter) | |
LLM_API_KEY | Chiave API per il provider LLM | |
LLM_MODEL | Nome del modello (es. claude-sonnet-4-20250514) | |
LLM_BASE_URL | Endpoint personalizzato (sostituisce l'endpoint predefinito del provider) |