Repolode
blacktop

blacktop/ipsw

面向 Apple 固件研究的命令行工具箱,涵盖 IPSW/OTA 下载、Mach-O 与 dyld 缓存分析、kernelcache 和 iOS 设备操作。

Star
3,870
Fork
325
未关闭 Issue
23
最近提交
昨天

这是什么?

ipsw 是一个用 Go 编写的命令行工具箱,面向研究 Apple 固件和系统内部机制的人员。它可以下载并解包 iOS 和 macOS 的 IPSW、OTA 固件包,也能获取 macOS 安装器、Xcode 和 KDK。

拿到固件后,它可以检查 Mach-O 二进制、反汇编 ARM64 代码,并处理 dyld 共享缓存,包括提取 dylib、导出 Objective-C 头文件、读取 Swift 元数据。在内核方面,它支持提取 KEXT、列出系统调用和符号,并对比不同版本的 kernelcache。

命令行还能连接 iOS 设备,列出应用、通过 AFC 传输文件、抓取系统日志、挂载开发者镜像。其他功能包括解析 IMG4、解密 AEA 归档、符号化崩溃日志,以及可选的 LLM 辅助反编译。独立的 ipswd 守护进程提供 REST API 用于自动化。

核心功能

  • 01直接在命令行下载 IPSW、OTA、macOS 安装器、Xcode 和 KDK。
  • 02检查 Mach-O 的加载命令、符号、签名和权限,并反汇编 ARM64 代码。
  • 03从 dyld 共享缓存中提取 dylib,导出 Objective-C 头文件。
  • 04提取 KEXT 并对比不同固件版本的 kernelcache。
  • 05管理已连接的 iOS 设备:列出应用、传输文件、抓取日志。
  • 06通过 ipswd 守护进程提供 REST API,便于自动化。

适用场景

  • 从新发布的 iOS 固件中提取 kernelcache 进行分析。
  • 从 dyld 共享缓存中导出私有框架的 Objective-C 头文件。
  • 对比两个固件版本,查看哪些组件发生了变化。
  • 在调试或安全研究中对 iOS 崩溃日志进行符号化。

快速上手

  1. 1

    在 macOS 上通过 Homebrew 安装(含扩展版本)

    brew install blacktop/tap/ipsw
  2. 2

    在 Linux 上通过 snap 安装

    sudo snap install ipsw
  3. 3

    下载 iPhone 15 Pro 的最新 IPSW 固件

    ipsw download ipsw --device iPhone16,1 --latest

使用前须知

  • 部分命令依赖宿主操作系统或构建版本,Frida 支持需要单独的构建版本。
  • 从源码构建需要 Go 1.26 或更高版本以及用于 CGO 的 C 工具链。

收录于专题

标签

常见问题

ipsw 是什么?
面向 Apple 固件研究的命令行工具箱,涵盖 IPSW/OTA 下载、Mach-O 与 dyld 缓存分析、kernelcache 和 iOS 设备操作。 ipsw 是一个用 Go 编写的命令行工具箱,面向研究 Apple 固件和系统内部机制的人员。它可以下载并解包 iOS 和 macOS 的 IPSW、OTA 固件包,也能获取 macOS 安装器、Xcode 和 KDK。
ipsw 可以免费使用吗?用的什么许可证?
ipsw 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
ipsw 还在维护吗?
活跃维护中。ipsw 最近一次提交是在 2026年11月6日。
ipsw 适合用来做什么?
从新发布的 iOS 固件中提取 kernelcache 进行分析。 从 dyld 共享缓存中导出私有框架的 Objective-C 头文件。 对比两个固件版本,查看哪些组件发生了变化。 在调试或安全研究中对 iOS 崩溃日志进行符号化。
ipsw 怎么安装和运行?
在 macOS 上通过 Homebrew 安装(含扩展版本): brew install blacktop/tap/ipsw 在 Linux 上通过 snap 安装: sudo snap install ipsw 下载 iPhone 15 Pro 的最新 IPSW 固件: ipsw download ipsw --device iPhone16,1 --latest
在哪里获取 ipsw?
源代码和安装说明在 GitHub 上:https://github.com/blacktop/ipsw

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目