noobpk/frida-ios-hook
GitHub: noobpk/frida-ios-hook
基于 Frida 的 iOS 平台安全测试工具,提供方法追踪、SSL 绕过、IPA 砸壳、内存转储等功能的一站式命令行解决方案。
Stars: 1129 | Forks: 175
# Frida iOS hook
[](https://github.com/noobpk/frida-ios-hook/actions/workflows/codeql-analysis.yml)


📍 这是一个帮助你轻松使用 Frida 的工具。它支持在 iOS 平台上追踪类、函数以及修改方法返回值的脚本。
👉 针对 Android 平台:[frida-android-hook](https://github.com/noobpk/frida-android-hook)
👉 用于拦截 iOS 应用中加密 API:[frida-ios-intercept-api](https://github.com/noobpk/frida-ios-intercept-api)
## 环境操作系统支持
| OS | Supported | Noted |
| ------- | ------------------ | ------- |
| MacOS | :white_check_mark: | Stable |
| Linux | :white_check_mark: | Stable |
| Windows | :white_check_mark: | Unstable|
## 兼容性
| iOS | Frida | Frida-tools | Supported | Stable Version |
| -------- | ------- | ----------- |----------------- | -------------- |
| 16.7.11 | 16.7.14 | 13.7.1 | :white_check_mark:| |
| 16.7.11 | 16.1.4 | 12.2.1 | :white_check_mark:| :white_check_mark:|
**注意:** 建议使用稳定版以修复 Frida 17.0.1 中存在的 [ObjC not defined issue](https://github.com/frida/frida/issues/3460) 问题。
## 功能
使用 Python3.x 运行。支持对进程进行 **spawn** 和 **attach** 脚本操作。所有选项来自 `./ioshook -h`:
| Category | Option | Description |
|----------|--------|-------------|
| **General** | `-h`, `--help` | 显示帮助信息并退出 |
| | `--cli` | 启动 iOSHook 交互式 CLI |
| | `-p`, `--package` *PACKAGE* | 目标应用的 Bundle identifier (spawn) |
| | `-n`, `--name` *NAME* | 目标应用的显示名称 (attach) |
| | `--pid` *PID* | 目标应用的进程 ID (attach) |
| | `-s`, `--script` *SCRIPT.JS* | Frida JavaScript hook 脚本路径 |
| | `-c`, `--check-version` | 检查 iOSHook 更新 |
| | `-u`, `--update` | 将 iOSHook 更新至最新版本 |
| **Quick Method** | `-m`, `--method` *METHOD* | `app-static`, `bypass-jb`, `bypass-ssl`, `i-url-req`, `i-crypto` (根据需要使用 `-n` 或 `-p`) |
| **Information** | `--list-devices` | 列出所有已连接的 Frida 设备 |
| | `--list-apps` | 列出设备上所有已安装的应用 |
| | `--list-scripts` | 列出所有可用的 Frida 脚本 |
| | `--logcat` | 显示设备的系统日志 (idevicesyslog) |
| | `--conf` | 打开并编辑 hook.conf 文件 |
| | `--shell`, `--ssh` | 打开设备的 SSH shell (默认:USB 通过 iproxy) |
| | `--ssh-port-forward` *LOCAL:DEVICE* | 将端口从本地转发到设备 (ssh -R) |
| | `--network` *HOST:PORT* | 通过网络 SSH 连接 (默认端口 22) |
| | `--local` | 使用 iproxy 通过 USB 连接 |
| **Dump decrypt IPA** | `-d`, `--dump-app` | Dump 并解密应用 IPA 文件 |
| | `-o`, `--output` *OUTPUT_IPA* | 解密后 IPA 的输出文件名 (不含 .ipa) |
| | `--dump-output-dir` *DIR* | Dump IPA 的输出目录 (默认:`workspaces/dumps`) |
| **Dump memory** | `--dump-memory` *OPTS* | Dump 正在运行的应用程序的内存 (例如 `--string`, `--read-only`) |
| **HexByte Scan IPA** | `--hexbyte-scan` *MODE* | 模式:`help`, `scan`, `patch`, `json` |
| | `--file` *FILE.IPA* | 要扫描/补丁的 IPA 文件 |
| | `--pattern` *PATTERN* | 要搜索的十六进制模式 (例如 E103??AA????E0) |
| | `--address` *ADDRESS* | 补丁地址 (格式:address,bytes,distance) |
| | `--task` *TASK.json* | 用于 hexbyte 扫描的 JSON 任务文件 |
| **reFlutter** | `--reflutter` *FLUTTER.IPA* | 用于 reFlutter 分析的 Flutter IPA 路径 |
## 📜 更新日志
[查看完整更新日志](https://github.com/noobpk/frida-ios-hook/blob/master/CHANGELOG.md)
## 安装
```
[+] 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 完整用法](https://github.com/noobpk/frida-ios-hook/wiki)
如果你运行脚本但没有生效,可以尝试以下命令:
```frida -U -f package -l script.js```
## 📺 功能演示
|Title|Link|
|:---|:---|
|Frida iOS Hook | Basic Usage | Install - List devices - List apps - List scripts - Logcat - Shell|[https://youtu.be/xSndHgTdv4w](https://youtu.be/xSndHgTdv4w)|
|Frida iOS Hook | Basic Usage | Dump Decrypt IPA - Dump Memory App - Hexbyte-Scan IPA|[https://youtu.be/AUsJ9_gnWAI](https://youtu.be/AUsJ9_gnWAI)|
|Frida iOS Hook | Basic Usage | App Static - Bypass Jailbreak - Bypass SSL - Intercept URL + Crypto|[https://youtu.be/nWhKDSzArf8](https://youtu.be/nWhKDSzArf8)|
|Frida iOS Hook | Advance Usage | Memory Dump - Radare2 - Iaito|[https://youtu.be/nUqE4EYWiEc](https://youtu.be/nUqE4EYWiEc)|
## 免责声明
因为我不是开发者,所以我的编码技能可能不是最好的。因此,如果此工具有任何问题或对你不起作用,请创建一个 issue,我会尝试修复。
欢迎任何关于新功能的建议和讨论!标签:App分析, CVE监控, Debug, Docker支持, Frida, Hook工具, iOS安全, Objective-C, Python, 云资产清单, 函数修改, 安全测试, 攻击性安全, 数据可视化, 方法追踪, 无后门, 目录枚举, 移动安全, 自定义脚本, 自定义脚本, 越狱开发, 逆向工具, 逆向工程