เครื่องมือที่ช่วยให้คุณสามารถใช้ frida ได้อย่างง่ายดาย รองรับสคริปต์สำหรับคลาสการติดตาม ฟังก์ชัน และแก้ไขค่าที่ส่งคืนของวิธีการบนแพลตฟอร์ม iOS
สำหรับแพลตฟอร์ม Android: frida-android-hook
สำหรับ Intercept Api ถูกเข้ารหัสบนแอปพลิเคชัน iOS: frida-ios-intercept-api
ระบบปฏิบัติการ | รองรับ | เข้าใจแล้ว |
---|---|---|
แมคโอเอส | หลัก | |
ลินุกซ์ | ย่อย | |
หน้าต่าง | ย่อย |
ไอโอเอส | ฟรีด้า | Frida-เครื่องมือ | รองรับ |
---|---|---|---|
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
ชื่อ | ลิงค์ |
---|---|
Frida iOS Hook | การใช้งานขั้นพื้นฐาน | ติดตั้ง - แสดงรายการอุปกรณ์ - แสดงรายการแอพ - แสดงรายการสคริปต์ - Logcat - Shell | https://youtu.be/xSndHgTdv4w |
Frida iOS Hook | การใช้งานขั้นพื้นฐาน | Dump Decrypt IPA - แอพ Dump Memory - Hexbyte-Scan IPA | https://youtu.be/AUsJ9_gnWAI |
Frida iOS Hook | การใช้งานขั้นพื้นฐาน | แอปคงที่ - บายพาส Jailbreak - บายพาส SSL - สกัดกั้น URL + Crypto | https://youtu.be/nWhKDSzArf8 |
Frida iOS Hook | การใช้งานล่วงหน้า | การถ่ายโอนข้อมูลหน่วยความจำ - Radare2 - Iaito | https://youtu.be/nUqE4EYWiEc |
อัปเดตสคริปต์ frida บางส่วนเพื่อช่วยคุณเกี่ยวกับแอป iOS ที่เพนต์ที่สุด กรองสคริปต์โดยใช้วางไข่ (S) หรือแนบ (A)
เอ็น | วางไข่/แนบ | ชื่อสคริปต์ | คำอธิบายสคริปต์ | เวอร์ชันสคริปต์ |
---|---|---|---|---|
1 | ส | backtrace.js | ย้อนรอย | 1.0 |
2 | ส | บายพาสกระพือ-ssl.js | การปักหมุด SSL บายพาสกระพือ | 1.0 |
3 | ส | บายพาส-jailbreak-1.js | การตรวจจับการแหกคุกบายพาสขั้นพื้นฐาน | 1.0 |
4 | ส | บายพาส-ssl-ios13.js | iOS 13 บายพาสการปักหมุด SSL | 1.0 |
5 | ส | ดัมพ์-ios-url-scheme.js | ถ่ายโอนข้อมูลโครงร่าง URL ของ iOS เมื่อมีการเรียก "openURL" | 1.0 |
6 | ส | การถ่ายโอนข้อมูล-ui.js | ดัมพ์โครงสร้างส่วนติดต่อผู้ใช้บนหน้าจอปัจจุบัน | 1.0 |
7 | ส+เอ | ค้นหาทุกคลาส-methods.js | ทิ้งเมธอดทั้งหมดไว้ในทุกคลาส | 1.0 |
8 | ส+เอ | ค้นหา-all-classes.js | ดัมพ์คลาสทั้งหมดที่แอปใช้ | 1.0 |
9 | ส+เอ | ค้นหา-app-classes-methods.js | ดัมพ์วิธีการทั้งหมดภายในคลาสที่เป็นของแอปเท่านั้น | 1.0 |
10 | ส+เอ | ค้นหาแอป-classes.js | ดัมพ์คลาสที่เป็นของแอปเท่านั้น | 1.0 |
11 | ส+เอ | ค้นหาวิธีการเฉพาะ js | ค้นหาวิธีการเฉพาะในทุกชั้นเรียน | 1.0 |
12 | ส+เอ | flutter_trace_function.js | ฟังก์ชั่นติดตาม iOS กระพือ | 1.0 |
13 | ส+เอ | hook-all-methods-of-all-classes-app-only.js | เชื่อมต่อวิธีการทั้งหมดของคลาสทั้งหมดที่แอปเป็นเจ้าของ | 1.0 |
14 | ส+เอ | hook-วิธีการทั้งหมดของเฉพาะ-class.js | เชื่อมต่อเมธอดทั้งหมดของคลาสใดคลาสหนึ่ง | 1.0 |
15 | ส+เอ | hook เฉพาะวิธีการของ class.js | ขอวิธีการเฉพาะของคลาสเฉพาะ | 1.0 |
16 | ส+เอ | ตัด-nslog.js | สกัดกั้นการโทรไปยังฟังก์ชันการบันทึก NSLog ของ Apple | 1.0 |
17 | ส+เอ | iOS-แอป-static-analysis.js | การวิเคราะห์แบบคงที่ของแอป iOS | 1.0 |
18 | ส | ios-ไบโอเมตริกซ์-bypass.js | บายพาสไบโอเมตริกซ์ iOS | 1.0 |
19 | ส+เอ | iOS-สกัดกั้น-crypto-2.js | iOS สกัดกั้นการดำเนินการ Crypto 2 | 1.0 |
20 | ส+เอ | iOS-สกัดกั้น-crypto.js | iOS สกัดกั้นการดำเนินการของ Crypto | 1.0 |
21 | ส+เอ | iOS-รายการ-apps.js | แอปพลิเคชันรายการ iOS | 1.0 |
22 | ส+เอ | iOS-url-scheme-fuzzing.js | iOS URL Scheme Fuzzing | 1.0 |
23 | ส+เอ | กระดาษแข็ง-monitoring.js | ติดตามการใช้พาสบอร์ด มีประโยชน์ในการแสดงแอตทริบิวต์ที่ไม่มีความปลอดภัยในฟิลด์ที่ละเอียดอ่อนทำให้สามารถคัดลอกข้อมูลได้ | 1.0 |
24 | ส+เอ | raptor_frida_ios_autoIntercept.js | Raptor frida iOS สกัดกั้นอัตโนมัติ | 1.0 |
25 | ส+เอ | raptor_frida_ios_bypass1.js | Raptor frida iOS บายพาส 1 | 1.0 |
26 | ส+เอ | raptor_frida_ios_bypass2.js | Raptor frida iOS บายพาส 2 | 1.0 |
27 | ส+เอ | raptor_frida_ios_call.js | Raptor frida โทร iOS | 1.0 |
28 | ส+เอ | raptor_frida_ios_debug.js | Raptor frida ios ดีบัก | 1.0 |
29 | ส+เอ | raptor_frida_ios_enum.js | Raptor frida iOS แจกแจง | 1.0 |
30 | ส+เอ | raptor_frida_ios_lowlevel1.js | Raptor frida iOS ระดับต่ำ 1 | 1.0 |
31 | ส+เอ | raptor_frida_ios_lowlevel2.js | Raptor frida iOS ระดับต่ำ 2 | 1.0 |
32 | ส+เอ | raptor_frida_ios_stalker.js | Raptor ฟรีด้า สตอล์กเกอร์ iOS | 1.0 |
33 | ส+เอ | raptor_frida_ios_touchid.js | Raptor ฟรีด้า iOS touchid | 1.0 |
34 | ส+เอ | raptor_frida_ios_trace.js | ติดตาม Raptor frida iOS | 1.0 |
35 | ส+เอ | อ่าน-nsuserdefaults.js | แสดงเนื้อหาของ NSUserDefaults | 1.0 |
36 | ส+เอ | อ่าน-plist-file.js | แสดงเนื้อหาของไฟล์ Plist | 1.0 |
37 | ส | แทนที่ส่งออก-method.js | แทนที่ฟังก์ชันที่ส่งออกของโมดูล | 1.0 |
38 | ส+เอ | แสดงวิธีการทั้งหมดของเฉพาะ class.js | ดัมพ์เมธอดทั้งหมดของคลาสใดคลาสหนึ่ง | 1.0 |
39 | ส+เอ | แสดงอาร์กิวเมนต์ประเภทนับและส่งคืนมูลค่า-type.js | แสดงประเภทอาร์กิวเมนต์และจำนวนและประเภทของค่าตอบแทนสำหรับฟังก์ชันในชั้นเรียน | 1.0 |
40 | ส+เอ | แสดงอินสแตนซ์ตัวแปรสำหรับเฉพาะ class.js | แสดงตัวแปรอินสแตนซ์ทั้งหมดของคลาสเฉพาะ | 1.0 |
41 | ส+เอ | แสดง-แก้ไขฟังก์ชั่น-arguments.js | แสดงและแก้ไขอาร์กิวเมนต์ของฟังก์ชันภายในชั้นเรียน | 1.0 |
42 | ส+เอ | แสดง-แก้ไข-วิธี-ส่งคืน-value.js | แสดงและแก้ไขค่าที่ส่งคืนของวิธีการเฉพาะภายในชั้นเรียน | 1.0 |
43 | ส+เอ | show_binarycookies.js | แสดงเนื้อหาของไฟล์ Cookies.binarycookies | 1.0 |
เอ็น | ชื่องาน | คำอธิบายงาน |
---|---|---|
1 | openssl_hook.json | ตะขอปักหมุดใบรับรอง OpenSSL 1.0.2 บน arm64 |
2 | openssl_1_1_0_hook.json | ตะขอปักหมุดใบรับรอง OpenSSL 1.1.0 สำหรับ arm64 จะปรับเปลี่ยนคำสั่ง cmp ในวิธี tls_process_server_certificate |
3 | openssl_hook_v2.json | ตะขอปักหมุดใบรับรอง OpenSSL 1.0.2 บน arm64 รูปแบบที่ได้รับการปรับปรุง อาจเป็นสำหรับเวอร์ชันคอมไพเลอร์อื่นหรือ OpenSSL ที่อัปเดตเล็กน้อย ให้ใช้หากเวอร์ชันแรกไม่พบตำแหน่งแพตช์ hooks เหล่านี้เรียกแพตช์ไปที่ ssl_verify_cert_chain ใน ssl3_get_server_certificate |
เนื่องจากฉันไม่ใช่ Developer ดังนั้นทักษะการเขียนโค้ดของฉันจึงอาจไม่ดีที่สุด ดังนั้น หากเครื่องมือนี้มีปัญหาหรือไม่ทำงานสำหรับคุณ ให้สร้างปัญหาและเราจะพยายามแก้ไข ข้อเสนอแนะสำหรับคุณลักษณะใหม่และการสนทนายินดีต้อนรับ!