Ein Tool, das Ihnen die einfache Verwendung von Frida erleichtert. Es unterstützt Skripte für Trace-Klassen und -Funktionen und ändert die Rückgabewerte von Methoden auf der iOS-Plattform.
Für Android-Plattform: frida-android-hook
Für Intercept wurde die API in der iOS-Anwendung verschlüsselt: frida-ios-intercept-api
Betriebssystem | Unterstützt | Zur Kenntnis genommen |
---|---|---|
MacOS | ✅ | hauptsächlich |
Linux | ✅ | sub |
Windows | ✅ | sub |
iOS | Frida | Frida-Werkzeuge | Unterstützt |
---|---|---|---|
15.7.4 | 16.1.3 | 12.2.1 | ✅ |
Läuft mit Python3.x
Unterstützt sowohl das Spawnen als auch das Anhängen von Skripts an den Prozess.
[+] 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
Version: 3.9
[+] Add: - Add backtrace to hooking.js [+] Change: - Update frida version - Update readme, changelog, requirement [+] Fix - Fix issue #85
Siehe vollständiges ChangeLog
[+] 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)
Siehe Vollständige Nutzung als Wiki
Wenn Sie das Skript ausführen, es aber nicht funktioniert, können Sie Folgendes versuchen: frida -U -f package -l script.js
Titel | Link |
---|---|
Frida iOS Hook | Grundlegende Verwendung | Installieren – Geräte auflisten – Apps auflisten – Skripte auflisten – Logcat – Shell | https://youtu.be/xSndHgTdv4w |
Frida iOS Hook | Grundlegende Verwendung | Dump Decrypt IPA – Dump Memory App – Hexbyte-Scan IPA | https://youtu.be/AUsJ9_gnWAI |
Frida iOS Hook | Grundlegende Verwendung | App Static – Jailbreak umgehen – SSL umgehen – URL + Krypto abfangen | https://youtu.be/nWhKDSzArf8 |
Frida iOS Hook | Vorabnutzung | Speicherauszug – Radare2 – Iaito | https://youtu.be/nUqE4EYWiEc |
Einige Frida-Skripte wurden aktualisiert, um Sie bei der Pentest-iOS-App zu unterstützen. Skript mit Spawn(S) oder Attach(A) filtern
N | Spawnen/Anhängen | Skriptname | Skriptbeschreibung | Skriptversion |
---|---|---|---|---|
1 | S | backtrace.js | Zurückverfolgen | 1,0 |
2 | S | bypass-flutter-ssl.js | Flutter-Bypass-SSL-Pinning | 1,0 |
3 | S | bypass-jailbreak-1.js | Grundlegende Bypass-Jailbreak-Erkennung | 1,0 |
4 | S | bypass-ssl-ios13.js | iOS 13 umgeht SSL-Pinning | 1,0 |
5 | S | dump-ios-url-scheme.js | Gibt das iOS-URL-Schema aus, wenn „openURL“ aufgerufen wird | 1,0 |
6 | S | dump-ui.js | Geben Sie die aktuelle Struktur der Benutzeroberfläche auf dem Bildschirm aus | 1,0 |
7 | S+A | find-all-classes-methods.js | Alle Methoden in allen Klassen sichern | 1,0 |
8 | S+A | find-all-classes.js | Alle von der App verwendeten Klassen löschen | 1,0 |
9 | S+A | find-app-classes-methods.js | Alle Methoden werden nur in Klassen ausgegeben, die der App gehören | 1,0 |
10 | S+A | find-app-classes.js | Nur Klassen, die der App gehören, werden gelöscht | 1,0 |
11 | S+A | find-spezifische-method.js | Suchen Sie in allen Klassen nach einer bestimmten Methode | 1,0 |
12 | S+A | flutter_trace_function.js | iOS-Flatter-Trace-Funktion | 1,0 |
13 | S+A | Hook-all-methods-of-all-classes-app-only.js | Binden Sie alle Methoden aller Klassen ein, die der App gehören | 1,0 |
14 | S+A | Hook-all-Methoden-der-spezifischen-Klasse.js | Binden Sie alle Methoden einer bestimmten Klasse ein | 1,0 |
15 | S+A | Hook-spezifische-Methode-der-Klasse.js | Hooken Sie eine bestimmte Methode einer bestimmten Klasse | 1,0 |
16 | S+A | intercept-nslog.js | Anrufe an die NSLog-Protokollierungsfunktion von Apple abfangen | 1,0 |
17 | S+A | ios-app-static-analysis.js | Statische Analyse der iOS-App | 1,0 |
18 | S | ios-biometrische-bypass.js | Biometrischer Bypass für iOS | 1,0 |
19 | S+A | ios-intercept-crypto-2.js | iOS fängt Kryptooperationen ab 2 | 1,0 |
20 | S+A | ios-intercept-crypto.js | iOS fängt Krypto-Operationen ab | 1,0 |
21 | S+A | ios-list-apps.js | iOS-Listenanwendung | 1,0 |
22 | S+A | ios-url-scheme-fuzzing.js | Fuzzing des iOS-URL-Schemas | 1,0 |
23 | S+A | pasteboard-monitoring.js | Überwachen Sie die Verwendung von Pappe. Nützlich, um das Fehlen sicherer Attribute bei sensiblen Feldern anzuzeigen, die das Kopieren von Daten ermöglichen. | 1,0 |
24 | S+A | raptor_frida_ios_autoIntercept.js | Raptor Frida iOS automatisches Abfangen | 1,0 |
25 | S+A | raptor_frida_ios_bypass1.js | Raptor Frida iOS Bypass 1 | 1,0 |
26 | S+A | raptor_frida_ios_bypass2.js | Raptor Frida iOS Bypass 2 | 1,0 |
27 | S+A | raptor_frida_ios_call.js | Raptor Frida iOS Anruf | 1,0 |
28 | S+A | raptor_frida_ios_debug.js | Raptor Frida iOS debuggen | 1,0 |
29 | S+A | raptor_frida_ios_enum.js | Raptor Frida iOS Enumeration | 1,0 |
30 | S+A | raptor_frida_ios_lowlevel1.js | Raptor Frida iOS Low Level 1 | 1,0 |
31 | S+A | raptor_frida_ios_lowlevel2.js | Raptor Frida iOS Low Level 2 | 1,0 |
32 | S+A | raptor_frida_ios_stalker.js | Raptor Frida iOS Stalker | 1,0 |
33 | S+A | raptor_frida_ios_touchid.js | Raptor Frida iOS Touchid | 1,0 |
34 | S+A | raptor_frida_ios_trace.js | Raptor Frida iOS Spur | 1,0 |
35 | S+A | read-nsuserdefaults.js | Inhalte von NSUserDefaults anzeigen | 1,0 |
36 | S+A | read-plist-file.js | Inhalte einer Plist-Datei anzeigen | 1,0 |
37 | S | replace-exported-method.js | Ersetzen Sie die exportierte Funktion eines Moduls | 1,0 |
38 | S+A | show-all-methods-of-specific-class.js | Alle Methoden einer bestimmten Klasse sichern | 1,0 |
39 | S+A | show-argument-type-count-and-return-value-type.js | Zeigen Sie Argumenttyp und -anzahl sowie den Typ des Rückgabewerts für eine Funktion in einer Klasse an | 1,0 |
40 | S+A | show-instance-variables-for-specific-class.js | Alle Instanzvariablen einer bestimmten Klasse anzeigen | 1,0 |
41 | S+A | show-modify-function-arguments.js | Argumente einer Funktion innerhalb einer Klasse anzeigen und ändern | 1,0 |
42 | S+A | show-modify-method-return-value.js | Rückgabewert einer bestimmten Methode innerhalb einer Klasse anzeigen und ändern | 1,0 |
43 | S+A | show_binarycookies.js | Inhalt der Datei „Cookies.binarycookies“ anzeigen | 1,0 |
N | Aufgabenname | Aufgabenbeschreibung |
---|---|---|
1 | openssl_hook.json | OpenSSL 1.0.2-Zertifikat-Pinning-Hook auf arm64 |
2 | openssl_1_1_0_hook.json | OpenSSL 1.1.0-Zertifikat-Pinning-Hook für arm64, er ändert die cmp-Anweisung in der tls_process_server_certificate-Methode |
3 | openssl_hook_v2.json | OpenSSL 1.0.2-Zertifikat-Pinning-Hook auf arm64, verbessertes Muster, möglicherweise für eine andere Compiler-Version oder leicht aktualisiertes OpenSSL, verwenden Sie, wenn die erste Version keinen Patch-Speicherort findet. Diese Hooks patchen den Aufruf von ssl_verify_cert_chain in ssl3_get_server_certificate. |
Da ich kein Entwickler bin, sind meine Programmierkenntnisse möglicherweise nicht die besten. Wenn also mit diesem Tool ein Problem auftritt oder es bei Ihnen nicht funktioniert, erstellen Sie ein Problem und ich werde versuchen, es zu beheben. Alle Vorschläge für neue Funktionen und Diskussionen sind willkommen!