frida ios hook
v3.9
fridaを簡単に利用できるように支援するツールです。トレースクラス、関数のスクリプトをサポートし、iOS プラットフォーム上のメソッドの戻り値を変更します。
Android プラットフォームの場合: frida-android-hook
iOS アプリケーションで Intercept API が暗号化された場合: frida-ios-intercept-api
OS | サポートされています | 注目 |
---|---|---|
MacOS | ✅ | 主要 |
Linux | ✅ | サブ |
窓 | ✅ | サブ |
iOS | フリーダ | フリーダツール | サポートされています |
---|---|---|---|
15.7.4 | 16.1.3 | 12.2.1 | ✅ |
python3.xで実行
スクリプトの生成と処理へのアタッチの両方をサポートします。
[+] Options: -p(--package) Identifier of application ex: com.apple.AppStore -n(--name) Name of application ex: AppStore -s(--script) Using script format script.js -c(--check-version) Check for the newest version -u(--update) Update to the newest version [*] Dump decrypt IPA: -d, --dump Dump decrypt application.ipa -o OUTPUT_IPA, --output=OUTPUT_IPA Specify name of the decrypted IPA [*] Dump memory of Application: --dump-memory Dump memory of application [*] HexByte Scan IPA: --hexbyte-scan Scan or Patch IPA with byte patterns --pattern=PATTERN Pattern for hexbytescan --address=ADDRESS Address for hexbytescan -t TASK, --task=TASK Task for hexbytescan [*] Information: --list-devices List All Devices --list-apps List The Installed apps --list-scripts List All Scripts --logcat Show system log of device --shell, --ssh Get the shell of connect device [*] Quick method: -m(--method) Support commonly used methods app-static(-n) bypass-jb(-p) bypass-ssl(-p) i-url-req(-n) i-crypto(-p) [*] reFlutter: --reflutter=FLUTTERFILE File Flutter.ipa
バージョン: 3.9
[+] Add: - Add backtrace to hooking.js [+] Change: - Update frida version - Update readme, changelog, requirement [+] Fix - Fix issue #85
完全な変更ログを参照
[+] Latest version https://github.com/noobpk/frida-ios-hook/releases [+] Develop version git clone -b dev https://github.com/noobpk/frida-ios-hook
[+] Python >= v3.0 (Recommend to use pyenv or virtualenv) 1. cd frida-ios-hook/ 2. python3 -m venv py-env 3. source py-env/bin/active
1. pip3 install -r requirements.txt 3. python3 setup.py 4. cd frida-ios-hook 5. ./ioshook -h (--help)
完全な使用法を Wiki として参照
スクリプトを実行しても機能しない場合は、次のことを試してください: frida -U -f package -l script.js
タイトル | リンク |
---|---|
フリーダ iOS フック |基本的な使い方 |インストール - デバイスの一覧表示 - アプリの一覧表示 - スクリプトの一覧表示 - Logcat - シェル | https://youtu.be/xSndHgTdv4w |
フリーダ iOS フック |基本的な使い方 |ダンプ復号化 IPA - ダンプ メモリ アプリ - Hexbyte-Scan IPA | https://youtu.be/AUsJ9_gnWAI |
フリーダ iOS フック |基本的な使い方 |静的アプリ - 脱獄のバイパス - SSL のバイパス - URL + 暗号化のインターセプト | https://youtu.be/nWhKDSzArf8 |
フリーダ iOS フック |事前利用 |メモリダンプ - Radare2 - 居合刀 | https://youtu.be/nUqE4EYWiEc |
iOS アプリのペンテストに役立つように、いくつかの frida スクリプトを更新しました。 spawn(S) またはattach(A) を使用してスクリプトをフィルタリングします。
N | スポーン/アタッチ | スクリプト名 | スクリプトの説明 | スクリプトのバージョン |
---|---|---|---|---|
1 | S | バックトレース.js | バックトレース | 1.0 |
2 | S | バイパスフラッター-ssl.js | フラッターバイパスSSLピニング | 1.0 |
3 | S | バイパスジェイルブレイク-1.js | 基本的なジェイルブレイク検出のバイパス | 1.0 |
4 | S | バイパス-ssl-ios13.js | iOS 13 バイパス SSL ピンニング | 1.0 |
5 | S | dump-ios-url-scheme.js | 「openURL」が呼び出されたときに iOS URL スキームをダンプする | 1.0 |
6 | S | ダンプui.js | 現在の画面上のユーザー インターフェイス構造をダンプします。 | 1.0 |
7 | S+A | すべてのクラスのメソッドを検索.js | すべてのクラス内のすべてのメソッドをダンプする | 1.0 |
8 | S+A | find-all-classes.js | アプリで使用されているすべてのクラスをダンプします | 1.0 |
9 | S+A | find-app-classes-methods.js | アプリのみが所有するクラス内のすべてのメソッドをダンプします | 1.0 |
10 | S+A | find-app-classes.js | アプリのみが所有するクラスをダンプする | 1.0 |
11 | S+A | 特定のメソッドを見つける.js | すべてのクラスで特定のメソッドを検索する | 1.0 |
12 | S+A | flutter_trace_function.js | iOSフラッタートレース機能 | 1.0 |
13 | S+A | すべてのクラスのすべてのメソッドのフック-アプリのみ.js | アプリが所有するすべてのクラスのすべてのメソッドをフックします。 | 1.0 |
14 | S+A | 特定のクラス.js のすべてのメソッドをフックする | 特定のクラスのすべてのメソッドをフックする | 1.0 |
15 | S+A | class.js のフック固有のメソッド | 特定のクラスの特定のメソッドをフックする | 1.0 |
16 | S+A | インターセプト-nslog.js | Apple の NSLog ログ機能への呼び出しを傍受する | 1.0 |
17 | S+A | ios-app-静的分析.js | iOSアプリの静的解析 | 1.0 |
18 | S | ios-生体認証-バイパス.js | iOS 生体認証バイパス | 1.0 |
19 | S+A | ios-intercept-crypto-2.js | iOS が暗号化操作を傍受 2 | 1.0 |
20 | S+A | ios-intercept-crypto.js | iOS が暗号化操作を傍受 | 1.0 |
21 | S+A | ios-list-apps.js | iOSリストアプリケーション | 1.0 |
22 | S+A | ios-url-scheme-fuzzing.js | iOS URL スキームのファジング | 1.0 |
23 | S+A | ペーストボード監視.js | ペーストボードの使用状況を監視します。データのコピーを許可する機密フィールドにセキュア属性がないことを示すのに役立ちます。 | 1.0 |
24 | S+A | raptor_frida_ios_autoIntercept.js | ラプターフリーダiOSオートインターセプト | 1.0 |
25 | S+A | raptor_frida_ios_bypass1.js | ラプター フリーダ ios バイパス 1 | 1.0 |
26 | S+A | raptor_frida_ios_bypass2.js | ラプター フリーダ IOS バイパス 2 | 1.0 |
27 | S+A | raptor_frida_ios_call.js | ラプターフリーダiOSコール | 1.0 |
28 | S+A | raptor_frida_ios_debug.js | ラプターフリーダiOSデバッグ | 1.0 |
29 | S+A | raptor_frida_ios_enum.js | ラプター フリーダ ios 列挙型 | 1.0 |
30 | S+A | raptor_frida_ios_lowlevel1.js | ラプターフリーダios低レベル1 | 1.0 |
31 | S+A | raptor_frida_ios_lowlevel2.js | ラプターフリーダios低レベル2 | 1.0 |
32 | S+A | raptor_frida_ios_stalker.js | ラプター フリーダ イオス ストーカー | 1.0 |
33 | S+A | raptor_frida_ios_touchid.js | ラプター フリーダ イオス タッチイド | 1.0 |
34 | S+A | raptor_frida_ios_trace.js | ラプター フリーダ ios トレース | 1.0 |
35 | S+A | 読み取り-nsuserdefaults.js | NSUserDefaults の内容を表示する | 1.0 |
36 | S+A | 読み取りplistファイル.js | Plistファイルの内容を表示する | 1.0 |
37 | S | エクスポートされたメソッド.js を置き換える | モジュールのエクスポートされた関数を置き換える | 1.0 |
38 | S+A | 特定のクラスのすべてのメソッドを表示.js | 特定のクラスのすべてのメソッドをダンプする | 1.0 |
39 | S+A | show-引数の型の数と戻り値の型.js | クラス内の関数の引数の型と数、および戻り値の型を表示する | 1.0 |
40 | S+A | 特定のクラス.js のインスタンス変数を表示する | 特定のクラスのすべてのインスタンス変数を表示する | 1.0 |
41 | S+A | show-modify-function-arguments.js | クラス内の関数の引数を表示および変更する | 1.0 |
42 | S+A | show-modify-method-return-value.js | クラス内の特定のメソッドの戻り値を表示および変更する | 1.0 |
43 | S+A | show_binarycookies.js | Cookies.binarycookies ファイルの内容を表示する | 1.0 |
N | タスク名 | タスクの説明 |
---|---|---|
1 | openssl_hook.json | arm64 上の OpenSSL 1.0.2 証明書ピン留めフック |
2 | openssl_1_1_0_hook.json | arm64 用の OpenSSL 1.1.0 証明書固定フック。tls_process_server_certificate メソッドの cmp 命令を変更します。 |
3 | openssl_hook_v2.json | arm64 の OpenSSL 1.0.2 証明書ピン留めフック、改善されたパターン、おそらく異なるコンパイラ バージョンまたはわずかに更新された OpenSSL 用。最初のバージョンでパッチの場所が見つからない場合に使用します。これらのフックは、ssl3_get_server_certificate の ssl_verify_cert_chain への呼び出しにパッチを適用します。 |
私は開発者ではないので、コーディング スキルが最高ではない可能性があります。したがって、このツールに問題がある場合、または機能しない場合は、問題を作成してください。修正を試みます。新機能に関する提案やディスカッションは大歓迎です。