/ 目录 / 演练场 / ipsw-skill
● 社区 blacktop 🔑 需要你的密钥

ipsw-skill

作者 blacktop · blacktop/ipsw-skill

从您的代理驱动“ipsw” CLI — IPSW下载/解压缩、内核缓存差异、Mach-O分类、私有框架ObjC标头。

ipsw-skill教授Claude (以及Codex CLI/Gemini CLI等兼容代理)如何驱动blacktop的“ipsw” —用于Apple固件和二进制分析的Swiss-army CLI。它知道下载/提取IPSW和内核缓存、从私有框架转储Objective-C标头、跨版本区分内核、审核授权和检查Mach-O二进制文件的子命令。 针对Apple平台安全研究人员、逆向工程师和工程师调试框架级行为。

为什么要用

核心特性

实时演示

实际使用效果

ipsw-skill.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "ipsw-skill": {
      "command": "claude",
      "args": [
        "plugin",
        "marketplace",
        "add",
        "blacktop/ipsw-skill"
      ],
      "_inferred": false
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "ipsw-skill": {
      "command": "claude",
      "args": [
        "plugin",
        "marketplace",
        "add",
        "blacktop/ipsw-skill"
      ],
      "_inferred": false
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "ipsw-skill": {
      "command": "claude",
      "args": [
        "plugin",
        "marketplace",
        "add",
        "blacktop/ipsw-skill"
      ],
      "_inferred": false
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "ipsw-skill": {
      "command": "claude",
      "args": [
        "plugin",
        "marketplace",
        "add",
        "blacktop/ipsw-skill"
      ],
      "_inferred": false
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "ipsw-skill",
      "command": "claude",
      "args": [
        "plugin",
        "marketplace",
        "add",
        "blacktop/ipsw-skill"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "ipsw-skill": {
      "command": {
        "path": "claude",
        "args": [
          "plugin",
          "marketplace",
          "add",
          "blacktop/ipsw-skill"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

claude mcp add ipsw-skill -- claude plugin marketplace add blacktop/ipsw-skill

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: ipsw-skill

从私有框架转储Obj-C标头以进行API发现

👤 针对Apple内部的安全研究人员、SDK维护人员 ⏱ ~30 min advanced

何时使用: 您需要私有框架的公共表面(类+选择器名称)来研究行为变化。

前置条件
  • ipsw CLI已安装 — brew install blacktop/tap/ipsw
  • 从IPSW提取的dyld_shared_cache — 在您下载的IPSW上使用ipsw提取
步骤
  1. 下载
    对于我指定的iOS版本,请使用ipsw download。✓ 已复制
    → 保存在本地
  2. 提取共享缓存
    从IPSW中提取dyld_shared_cache。✓ 已复制
    → 已提取共享缓存文件
  3. 目标框架的转储标头
    转储的Obj-C标头<FrameworkName>。✓ 已复制
    → 带有类和选择器的头转储

结果: 您有不同版本的可读标头。

注意事项
  • 将模拟器二进制文件与设备二进制文件混淆 — 始终指定您正在学习的设备/拱门;模拟器切片不同
搭配使用: ghidrassistmcp

两个iOS版本之间的差异内核缓存

👤 Kernel和XNU研究人员 ⏱ ~60 min advanced

何时使用: 丢弃了一个新的iOS版本;您想查看内核中的更改。

步骤
  1. 提取两个内核缓存
    从IPSW A和IPSW B提取内核缓存。✓ 已复制
    → 磁盘上的两个内核缓存文件
  2. 差异
    区分两个内核缓存;列出添加/删除/修改的符号。✓ 已复制
    → 使用符号类别更改列表

结果: 内核级更改的重点更新日志。

注意事项
  • 将符号重新排序视为有意义的更改 — 让工具组重新排序,而不是真正的添加/删除

审核Mach-O的权利和可疑特征

👤 AppSec审核员、审核第三方依赖关系的开发人员 ⏱ ~20 min intermediate

何时使用: 您想检查二进制文件的授权和导入,然后再随应用程序一起发货。

步骤
  1. 检查Mach-O
    显示的LOAD命令、LC_CODE_SIGNATURE和权利<path>。✓ 已复制
    → 授权PLIST +签名信息
  2. 列出导入
    按框架分组的导入符号列表。✓ 已复制
    → 清除导入表

结果: 您可以将简明扼要的审计报告保存到审核线程中。

搭配使用: xcodebuild

组合

与其他 MCP 搭配,撬动十倍杠杆

ipsw-skill + ghidrassistmcp

将感兴趣的功能移交给Ghidra进行更深入的分析

从Mach-O导入中,选择可疑函数并在Ghidra中打开它。✓ 已复制

与ipsw的Apple专用工具一起使用更广泛的RE攻略

将通用RE工作流程与ipsw相结合,用于dyld缓存工作。✓ 已复制
ipsw-skill + xcodebuild

构建本地应用程序并验证它们是否与您期望的授权配置文件匹配

在xcodebuild之后,在存档上运行ipsw授权以审核最终登录的内容。✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
ipsw download version/device selector 获取固件以进行分析 bandwidth only
ipsw extract IPSW + target (dsc / kernelcache / ramdisk) 从IPSW中提取特定制品 0
ipsw dyld class-dump dyld_shared_cache + framework 研究私有框架API 0
ipsw kernel diff two kernelcaches 版本到版本内核分析 0
ipsw macho info/ent Mach-O path 二元分类 0

成本与限制

运行它的成本

API 配额
每次调用 Token 数
输出因伪影大小而异;范围命令严格
费用
免费;下载仅花费带宽
提示
使用ipsw的筛选标记,以便客服代表不会将50 MB的符号粘贴到上下文中。

安全

权限、密钥、影响范围

凭据存储: 基本操作不需要
数据出站: “ipsw download”从Apple的公共服务器中提取IPSW。技能本身没有额外的遥测。

故障排查

常见错误与修复

未找到命令

通过Homebrew TAP安装CLI : BREW INSTALL BLACKTOP/TAP/IPSW。

验证: which ipsw
下载次

Apple的服务器可以限速;请使用--resume重试。确保您的网络允许大量下载。

验证: curl -I https://appldnld.apple.com/...
Class-dump返回空值

确认您指向正确设备/拱形的共享缓存。模拟器缓存与设备缓存分开。

验证: ipsw dyld info <cache>

替代方案

ipsw-skill 对比其他方案

替代方案何时用它替代权衡
ghidrassistmcp您希望通过Ghidra进行全面的拆解和脚本编写重得多;启动速度较慢
ida-pro-mcp您已经获得了IDA Pro的许可,并希望集成MCP商业工具
reverse-engineering-assistant您需要更广泛的房地产工作流程助理非Apple特定

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills