分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

AloneMonkey/frida-ios-dump

安全

从越狱 iOS 设备上导出解密后的 IPA,供逆向工程和安全分析使用。

3,982
739
Python
MIT
创建于 8 年前

项目介绍

frida-ios-dump 通过 Frida 附加到越狱 iOS 设备上运行的目标应用,从内存中转储解密后的 Mach-O 主程序和各个 Framework,再通过 SSH/SFTP 收集应用资源,最后打包成保留目录结构、权限和符号链接的 IPA。面向需要拿到可读二进制的逆向工程师、安全研究人员和 iOS 开发者。

当前代码适配 Frida 17.x(文档以 17.23.3 为准)和 Python 3.10+。由于 Frida 17 不再为 Python API 加载的脚本内置 Objective-C bridge,dump.py 会先用 frida.Compiler 打包 frida-objc-bridge 再注入,不需要单独构建 agent(使用说明)。

快速使用

前提:设备已越狱并解锁,安装好 Frida,SSH 服务可从主机访问,主机与设备的 Frida 版本一致;主机需要 Python 3.10+ 和 Node.js/npm。

python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade -r requirements.txt
npm install

Windows PowerShell 对应写法:

python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
npm install

用 USB 连接设备后先列出已安装应用:

python dump.py -l

再按显示名称或 Bundle identifier 导出:

python dump.py 'Display name'
python dump.py Bundle.identifier

默认通过 Frida 的 USB 通道直连设备 SSH,不需要 iproxy 或本地端口转发;-p 用于指定非默认的设备 SSH 端口。默认账号是 root/alpine,可改用 -u/-P 指定其他账号密码,或用 -K 提供私钥。-H 支持读取 ~/.ssh/config 中的别名(SSH 设置)。

纯网络环境可用 --remote HOST[:PORT] 指定 Frida 端点(默认端口 27042),多台 USB 设备可用 --device-id 选择(设备选择)。已有本地 TCP 转发时可加 --ssh-transport tcp。排查问题时可用 -v 输出各阶段信息,并用 --agent-timeout、--transfer-timeout 分别调整等待消息和传输超时(诊断选项)。

成功后会逐条打印模块转储进度,并在运行开头显示的临时目录生成 IPA,例如 Aftenposten.ipa(示例输出)。

使用约束

  • 必须使用越狱设备,设备上要运行 Frida 和 SSH 服务,启动和转储期间保持解锁。
  • 主机与设备的 Frida 版本必须一致,文档目标为 17.23.3 / 17.x;已不支持 Python 2(支持说明)。
  • --remote 与 --device-id 互斥,远程模式也不能与 --ssh-transport usb 同时使用。
  • 使用 SSH/SCP 时需把主机公钥加入设备的 ~/.ssh/authorized_keys,或准备好可用的密码/密钥配置。
  • Windows 主机的完整设备工作流尚未经过测试,不过 IPA 打包已不依赖外部 zip/chmod/tar 命令。
  • 导出应用涉及法律与授权问题;项目采用 MIT 许可证,但并不授予重新分发所提取二进制的权利。

HotRepo 点评

本站没有该仓库的榜单排名、Star 曲线或讨论记录,因此没有站内热度趋势可报告。它的价值在技术层面:维护了兼容 Frida 17 的转储流程,内置 Objective-C bridge,支持二进制和资源的并行下载、直连 USB SSH,并在主机端和 agent 端都提供了回归测试(测试命令)。在越狱环境和匹配的 Frida 版本到位的前提下,这些是相比旧版 dumpdecrypted 脚本更值得选用的具体理由。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。