
Набор инструментов с открытым исходным кодом для тестирования безопасности мобильных устройств на iOS и Android. Ранее — Passionfruit.
Инструментарий для runtime-инструментирования мобильных приложений на базе Frida. Изучайте, перехватывайте и модифицируйте мобильные приложения через веб-интерфейс.
Теперь поддерживаются как iOS, так и Android!
Требуется запущенный сервер Frida на вашем устройстве. Сначала следуйте официальным руководствам по настройке(Android).
npm (рекомендуется, требуется Node.js 22.18+)
npm install -g igf
igf
Или запуск без установки (требуется Node.js 22.18+)
npx igf
Готовые бинарные файлы для macOS, Linux и Windows доступны на GitHub Releases. Как разработка из исходников, так и готовые исполняемые файлы используют Node.js; см. руководство по разработке для рабочего процесса с 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
| Переменная | Описание | По умолчанию |
|---|---|---|
HOST | Адрес привязки сервера | 127.0.0.1 |
PORT | Порт сервера | 31337 |
FRIDA_VERSION | Основная версия Frida (16 или 17) | 17 |
FRIDA_TIMEOUT | Таймаут операций Frida (мс) | 1000 |
PROJECT_DIR | Каталог проекта для данных/кэша/логов | .igf в текущем каталоге |
LLM_PROVIDER | AI-провайдер (anthropic, openai, gemini, openrouter) | |
LLM_API_KEY | API-ключ для LLM-провайдера | |
LLM_MODEL | Имя модели (например, claude-sonnet-4-20250514) | |
LLM_BASE_URL | Пользовательская конечная точка (переопределяет значение провайдера по умолчанию) |
Флаги командной строки имеют приоритет над переменными окружения, если заданы оба.
Этот проект не включает встроенные обходы для защиты от несанкционированного вмешательства:
Обоснование: Решения RASP (Runtime Application Self-Protection) постоянно развиваются для обнаружения фреймворков инструментирования. Поддержание эффективных обходов требует постоянных усилий, чтобы не отставать от новых методов обнаружения, что создаёт значительную нагрузку на сопровождение и потенциальные проблемы со стабильностью. Эти обходы также сильно зависят от конкретного приложения, что делает универсальные решения хрупкими.
Вместо того чтобы поставлять хрупкие встроенные обходы, Grapefruit сосредоточен на возможностях инструментирования и инспекции, которые хорошо сочетаются со специализированными инструментами обхода.
Рекомендуемые подходы для авторизованных оценок, где требуется обход RASP:
Frida Syscall Tracer — Используйте frida-strace (Frida 17.8.0+) для трассировки системных вызовов в целевом процессе. Это помогает выявить артефакты обнаружения и определить, какие патчи необходимы перед подключением Grapefruit:
frida-strace -U -f com.example.app