frida ios hook
v3.9
frida를 쉽게 사용할 수 있도록 도와주는 도구입니다. 추적 클래스, 함수에 대한 스크립트를 지원하고 iOS 플랫폼에서 메서드의 반환 값을 수정합니다.
Android 플랫폼의 경우: frida-android-hook
Intercept Api의 경우 iOS 애플리케이션 frida-ios-intercept-api에서 암호화되었습니다.
OS | 지원됨 | 유명한 |
---|---|---|
맥OS | ✅ | 기본 |
리눅스 | ✅ | 보결 |
윈도우 | ✅ | 보결 |
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 - Shell | https://youtu.be/xSndHgTdv4w |
프리다 iOS 후크 | 기본 사용법 | 덤프 복호화 IPA - 덤프 메모리 앱 - Hexbyte-Scan IPA | https://youtu.be/AUsJ9_gnWAI |
프리다 iOS 후크 | 기본 사용법 | App Static - 탈옥 우회 - SSL 우회 - URL 차단 + 암호화 | https://youtu.be/nWhKDSzArf8 |
프리다 iOS 후크 | 사전 이용 | 메모리 덤프 - Radare2 - Iaito | https://youtu.be/nUqE4EYWiEc |
Pentest iOS 앱에 도움이 되도록 일부 frida 스크립트를 업데이트했습니다. Spawn(S) 또는 Attach(A)를 사용하는 필터 스크립트
N | 생성/연결 | 스크립트 이름 | 스크립트 설명 | 스크립트 버전 |
---|---|---|---|---|
1 | 에스 | 역추적.js | 역추적 | 1.0 |
2 | 에스 | 우회-flutter-ssl.js | Flutter 우회 SSL 고정 | 1.0 |
3 | 에스 | 우회-탈옥-1.js | 기본 우회 탈옥 감지 | 1.0 |
4 | 에스 | 우회-ssl-ios13.js | iOS 13 우회 SSL 고정 | 1.0 |
5 | 에스 | 덤프-ios-url-scheme.js | "openURL"이 호출되면 iOS URL 구성표를 덤프합니다. | 1.0 |
6 | 에스 | dump-ui.js | 현재 화면상의 사용자 인터페이스 구조를 덤프합니다. | 1.0 |
7 | S+A | 찾기-모든 클래스-methods.js | 모든 클래스 내의 모든 메서드를 덤프합니다. | 1.0 |
8 | S+A | 찾기-모든-classes.js | 앱에서 사용되는 모든 클래스를 덤프합니다. | 1.0 |
9 | S+A | 찾기-앱-클래스-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 Flutter 추적 기능 | 1.0 |
13 | S+A | 후크-모든-방법-모든-클래스-앱-전용.js | 앱이 소유한 모든 클래스의 모든 메소드를 후크합니다. | 1.0 |
14 | S+A | 후크-모든-방법-특정-class.js | 특정 클래스의 모든 메소드를 연결합니다. | 1.0 |
15 | S+A | 후크별-method-of-class.js | 특정 클래스의 특정 메소드를 후크합니다. | 1.0 |
16 | S+A | Intercept-nslog.js | Apple의 NSLog 로깅 기능에 대한 호출을 가로채기 | 1.0 |
17 | S+A | ios-app-정적-analytics.js | iOS 앱 정적 분석 | 1.0 |
18 | 에스 | ios-생체 인식-bypass.js | iOS 생체인식 우회 | 1.0 |
19 | S+A | iOS-인터셉트-암호화-2.js | iOS가 암호화 작업을 가로챕니다 2 | 1.0 |
20 | S+A | iOS-인터셉트-crypto.js | iOS가 암호화 작업을 가로챕니다 | 1.0 |
21 | S+A | iOS-목록-apps.js | iOS 목록 애플리케이션 | 1.0 |
22 | S+A | ios-url-scheme-fuzzing.js | iOS URL 체계 퍼징 | 1.0 |
23 | S+A | 페이스트보드-monitoring.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 | 랩터 프리다 iOS 스토커 | 1.0 |
33 | S+A | raptor_frida_ios_touchid.js | 랩터 프리다 iOS Touchid | 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-file.js | Plist 파일의 내용 표시 | 1.0 |
37 | 에스 | 교체-수출-method.js | 모듈의 내보낸 함수 바꾸기 | 1.0 |
38 | S+A | 특정 클래스의 모든 메소드 표시.js | 특정 클래스의 모든 메소드 덤프 | 1.0 |
39 | S+A | show-argument-type-count-and-return-value-type.js | 클래스의 함수에 대한 인수 유형, 개수 및 반환 값 유형 표시 | 1.0 |
40 | S+A | 쇼-인스턴스-변수-for-특정-class.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에 대한 패치 호출을 수행합니다. |
저는 개발자가 아니기 때문에 코딩 실력이 최고가 아닐 수도 있습니다. 따라서 이 도구에 문제가 있거나 작동하지 않는 경우 문제를 생성해 주시면 해결하도록 노력하겠습니다. 새로운 기능에 대한 제안이나 토론을 환영합니다!