
Suíte de testes de segurança móvel de código aberto para iOS e Android. Anteriormente Passionfruit.
Kit de ferramentas de instrumentação de aplicativos móveis em tempo de execução, desenvolvido com Frida. Inspecione, hooke e modifique aplicativos móveis por meio de uma interface web.
Agora ele suporta iOS e Android!
Requer o servidor Frida em execução no seu dispositivo. Siga primeiro os guias oficiais de configuração(Android).
npm (recomendado, requer Node.js 22.18+)
npm install -g igf
igf
Ou execute sem instalar (requer Node.js 22.18+)
npx igf
Binários pré-compilados para macOS, Linux e Windows estão disponíveis nas GitHub Releases. Tanto o desenvolvimento a partir do código-fonte quanto os executáveis pré-compilados usam Node.js; consulte o guia de desenvolvimento para o fluxo de trabalho 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
Os argumentos de linha de comando têm precedência sobre as variáveis de ambiente quando ambos estão definidos.
Este projeto não inclui bypass integrados para proteções contra adulteração:
Justificativa: as soluções RASP (Runtime Application Self-Protection) evoluem continuamente para detectar frameworks de instrumentação. Manter bypass eficazes exige esforço contínuo para acompanhar novos métodos de detecção, introduzindo uma carga significativa de manutenção e possíveis problemas de estabilidade. Esses bypass também são altamente específicos de cada aplicação, o que torna frágeis as soluções de uso geral.
Em vez de fornecer bypass integrados frágeis, o Grapefruit concentra-se em capacidades de instrumentação e inspeção que se integram bem com ferramentas de bypass dedicadas.
Abordagens recomendadas para avaliações autorizadas em que o bypass de RASP é necessário:
Frida Syscall Tracer — Use frida-strace (Frida 17.8.0+) para rastrear chamadas de sistema no processo alvo. Isso ajuda a identificar artefatos de detecção e determinar quais patches são necessários antes de anexar o Grapefruit:
frida-strace -U -f com.example.app
Consulte as notas de versão do Frida 17.8.0 para obter detalhes.
Arquitetura de múltiplas sessões — O Frida suporta múltiplas sessões anexadas ao mesmo processo. Inicie primeiro uma sessão separada com seus scripts de bypass de RASP e depois lance o Grapefruit. Quando o Grapefruit detecta que o aplicativo alvo já está em execução, ele se anexa ao processo existente em vez de reiniciá-lo, preservando quaisquer bypass já em vigor.
O Grapefruit vincula-se a 127.0.0.1 por padrão e não possui autenticação integrada. A interface web e a API são acessíveis a qualquer processo local. Embora requisições de origem cruzada sejam bloqueadas por padrão (sem cabeçalhos CORS, o Socket.IO rejeita conexões de origem cruzada), isso por si só não é suficiente para um ambiente compartilhado ou remoto.
Se você precisar de acesso remoto ou segurança multi-usuário, coloque o Grapefruit atrás de um proxy reverso autenticado, como o Caddy, para TLS, controle de acesso e registro de logs. Não exponha o Grapefruit diretamente à rede sem autenticação.
| Variable | Description | Default |
|---|
HOST | Endereço de bind do servidor | 127.0.0.1 |
PORT | Porta do servidor | 31337 |
FRIDA_VERSION | Versão principal do Frida (16 ou 17) | 17 |
FRIDA_TIMEOUT | Tempo limite de operação do Frida (ms) | 1000 |
PROJECT_DIR | Diretório do projeto para dados/cache/logs | .igf in cwd |
LLM_PROVIDER | Provedor de IA (anthropic, openai, gemini, openrouter) | |
LLM_API_KEY | Chave de API para o provedor de LLM | |
LLM_MODEL | Nome do modelo (ex.: claude-sonnet-4-20250514) | |
LLM_BASE_URL | Endpoint personalizado (substitui o padrão do provedor) |