
iOSプラットフォーム上でクラスや関数のトレース、メソッドの戻り値の修正を簡単に行えるツール
📍 fridaを簡単に使用できるツールです。iOSプラットフォーム上で、クラスや関数のトレース、メソッドの戻り値の変更をサポートするスクリプトを提供します。
👉 Android版: frida-android-hook
👉 iOSアプリケーション上で暗号化されたAPIのインターセプト: frida-ios-intercept-api
| OS | サポート | 備考 |
|---|---|---|
| MacOS | ✅ | 安定 |
| Linux | ✅ | 安定 |
| Windows | ✅ | 不安定 |
| iOS | Frida | Frida-tools | サポート | 安定版 |
|---|---|---|---|---|
| 16.7.11 | 16.7.14 | 13.7.1 | ✅ | |
| 16.7.11 | 16.1.4 | 12.2.1 | ✅ | ✅ |
注記: frida 17.0.1で発生するObjCが定義されない問題を修正するには、安定版を使用してください。
python3.xで動作します。プロセスへのspawnとattachの両方のスクリプトをサポートします。./ioshook -hの全オプション:
[+] 最新バージョン
https://github.com/noobpk/frida-ios-hook/releases
[+] 開発バージョン
git clone -b dev https://github.com/noobpk/frida-ios-hook
[+] Python >= v3.0 (pyenvまたはvirtualenvの使用を推奨)
1. cd frida-ios-hook/
2. python3 -m venv py-env
3. source py-env/bin/activate
1. pip3 install -r requirements.txt
2. python3 setup.py
3. cd frida-ios-hook
4. ./ioshook -h (--help)
スクリプトを実行しても動作しない場合は、以下を試してください:
frida -U -f package -l script.js
開発者ではないため、コーディングスキルは最高ではないかもしれません。そのため、このツールに問題がある場合や動作しない場合は、Issueを作成してください。修正を試みます。 新機能の提案や議論は歓迎します!
| カテゴリ | オプション | 説明 |
|---|
| 一般 | -h, --help | ヘルプメッセージを表示して終了 |
--cli | iOSHook対話型CLIを起動 | |
-p, --package PACKAGE | ターゲットアプリのバンドル識別子(spawn) | |
-n, --name NAME | ターゲットアプリの表示名(attach) | |
--pid PID | ターゲットアプリのプロセスID(attach) | |
-s, --script SCRIPT.JS | Frida JavaScriptフッキングスクリプトへのパス | |
-c, --check-version | iOSHookのアップデートを確認 | |
-u, --update | iOSHookを最新バージョンに更新 | |
| クイックメソッド | -m, --method METHOD | app-static, bypass-jb, bypass-ssl, i-url-req, i-crypto(必要に応じて -n または -p を使用) |
| 情報 | --list-devices | 接続されている全Fridaデバイスを一覧表示 |
--list-apps | デバイスにインストールされている全アプリケーションを一覧表示 | |
--list-scripts | 利用可能な全Fridaスクリプトを一覧表示 | |
--logcat | デバイスのシステムログを表示(idevicesyslog) | |
--conf | hook.confファイルを開いて編集 | |
--shell, --ssh | デバイスにSSHシェルを開く(デフォルト:iproxy経由USB) | |
--ssh-port-forward LOCAL:DEVICE | ローカルからデバイスへポート転送(ssh -R) | |
--network HOST:PORT | ネットワークSSH経由で接続(デフォルトポート22) | |
--local | iproxyを使用してUSB経由で接続 | |
| IPAダンプ復号化 | -d, --dump-app | アプリケーションIPAファイルをダンプして復号化 |
-o, --output OUTPUT_IPA | 復号化したIPAの出力ファイル名(.ipaなし) | |
--dump-output-dir DIR | ダンプしたIPAの出力ディレクトリ(デフォルト: workspaces/dumps) | |
| メモリダンプ | --dump-memory OPTS | 実行中のアプリケーションのメモリをダンプ(例: --string, --read-only) |
| HexByte Scan IPA | --hexbyte-scan MODE | モード: help, scan, patch, json |
--file FILE.IPA | スキャン/パッチするIPAファイル | |
--pattern PATTERN | 検索する16進パターン(例: E103??AA????E0) | |
--address ADDRESS | パッチ用アドレス(形式: アドレス,バイト,距離) | |
--task TASK.json | hexbyteスキャン用JSONタスクファイル | |
| reFlutter | --reflutter FLUTTER.IPA | reFlutter解析用Flutter IPAへのパス |
| タイトル | リンク |
|---|
| Frida iOS Hook | 基本使用法 | インストール - デバイス一覧 - アプリ一覧 - スクリプト一覧 - Logcat - Shell | https://youtu.be/xSndHgTdv4w |
| Frida iOS Hook | 基本使用法 | IPAダンプ復号化 - メモリダンプ - HexByte-Scan IPA | https://youtu.be/AUsJ9_gnWAI |
| Frida iOS Hook | 基本使用法 | App Static - 脱獄回避 - SSL回避 - URL+Cryptoインターセプト | https://youtu.be/nWhKDSzArf8 |
| Frida iOS Hook | 高度な使用法 | メモリダンプ - Radare2 - Iaito | https://youtu.be/nUqE4EYWiEc |