
iOSおよびAndroid向けのオープンソースモバイルセキュリティテストスイート。旧称はPassionfruit。
Frida を利用したランタイムモバイルアプリケーションインストルメンテーションツールキットです。 Webベースのインターフェースを通じてモバイルアプリの検査、フック、改変ができます。
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
コマンドラインのフラグは、両方が設定されている場合、環境変数より優先されます。
このプロジェクトには、改ざん防止プロテクション用の組み込みバイパスは含まれていません:
理由: RASP(Runtime Application Self-Protection)ソリューションは、インストルメンテーションフレームワークを検出するために継続的に進化しています。効果的なバイパスを維持するには、新しい検出方法に対応し続けるための継続的な労力が必要であり、大きなメンテナンス負担と潜在的な安定性の問題が生じます。また、これらのバイパスはアプリケーション固有の要素が強く、汎用的なソリューションは脆弱になりがちです。
壊れやすい組み込みバイパスを同梱する代わりに、Grapefruitは専用のバイパスツールとうまく組み合わせられるインストルメンテーションと検査機能に焦点を当てています。
推奨アプローチ 権限のある評価でRASPバイパスが必要な場合:
Frida Syscall Tracer — frida-strace(Frida 17.8.0+)を使用して、ターゲットプロセス内のシステムコールをトレースします。これにより、検出アーティファクトを特定し、Grapefruitを接続する前に必要なパッチを判断できます:
frida-strace -U -f com.example.app
詳細は Frida 17.8.0 リリースノート を参照してください。
マルチセッションアーキテクチャ — Frida は同じプロセスに複数のセッションをアタッチできます。まずRASPバイパススクリプトを使用して別のセッションを起動し、その後Grapefruitを起動します。Grapefruitはターゲットアプリがすでに実行中であることを検出すると、プロセスを再生成せずに既存のプロセスにアタッチするため、すでに有効なバイパスが保持されます。
Grapefruit はデフォルトで 127.0.0.1 にバインドされ、組み込みの認証はありません。Web UI と API はローカルの任意のプロセスからアクセスできます。クロスオリジンリクエストはデフォルトでブロックされますが(CORSヘッダーなし、Socket.IO はクロスオリジン接続を拒否)、これだけでは共有環境やリモート環境には十分ではありません。
リモートアクセスやマルチユーザーセキュリティが必要な場合 は、TLS、アクセス制御、ロギングのために Caddy などの認証付きリバースプロキシの背後に Grapefruit を配置してください。認証なしで Grapefruit をネットワークに直接公開しないでください。
| 変数 | 説明 | デフォルト |
|---|
HOST | サーバーのバインドアドレス | 127.0.0.1 |
PORT | サーバーのポート | 31337 |
FRIDA_VERSION | Frida のメジャーバージョン(16 または 17) | 17 |
FRIDA_TIMEOUT | Frida 操作のタイムアウト(ms) | 1000 |
PROJECT_DIR | データ/キャッシュ/ログ用のプロジェクトディレクトリ | cwd 内の .igf |
LLM_PROVIDER | AIプロバイダー(anthropic、openai、gemini、openrouter) | |
LLM_API_KEY | LLMプロバイダーのAPIキー | |
LLM_MODEL | モデル名(例: claude-sonnet-4-20250514) | |
LLM_BASE_URL | カスタムエンドポイント(プロバイダーのデフォルトを上書き) |