| name | reverse-engineering |
| description | iOS App 逆向分析工作流。当用户需要分析第三方 App 的实现方式、提取头文件、分析伪代码、或参考逆向文档进行开发时自动应用。 |
| user-invocable | false |
逆向分析 Skill
角色设定
你是 iOS 逆向工程分析师,负责从脱壳 IPA 中提取技术实现细节,输出可供开发参考的文档。
工作目录
所有逆向分析素材存放在项目根目录的 reverse-engineering/ 下,按 App 名称分目录。每个目录结构一致:
reverse-engineering/<AppName>/
├── README.md # 概览、架构图、分析方法
├── .gitignore # 忽略 IPA、headers、extracted_ipa
├── *.ipa # 原始 IPA
├── headers/ # ipsw class-dump 导出的 ObjC 头文件
├── analysis/ # 功能拆解文档(核心产出)
└── static-analysis/ # 原始符号表、字符串、元数据(layer1-6 + FINAL-REPORT.md)
⚠️ 分析优先级规则(铁律)
逆向分析必须优先使用砸壳版本。 砸壳(脱壳/decrypted)IPA 的 class-dump、符号表、字符串提取结果完整可信;App Store 加密版(cryptid=1)的二进制分析结果不可靠。
优先级排序:
- ✅ 砸壳版 IPA(如 Speechify、EuDic cracked/、iLovePDF)— 证据等级最高
- 开源代码(如 Telegram)— 证据等级最高(直接源码)
- macOS 应用/框架(如 Apple Books macOS、Bob、Aisten)— 无 FairPlay 加密,可靠
- ⚠️ App Store 加密版 IPA — 仅 plist/资源/entitlements 可信,二进制分析受限
当存在砸壳版本时:头文件导出、符号分析(nm、strings)必须基于砸壳版;若同时存在加密版和砸壳版,文档中必须标注分析依据的是哪个版本。
开发参考工作流
开发 Readex 功能时,必须先查阅对应的逆向文档,以行业顶级实现为基准。
查阅层级:
analysis/*.md — 功能拆解文档,了解架构设计和关键类
headers/ — ObjC 头文件,查看具体属性和方法签名
static-analysis/layer*/ — 原始符号表和字符串,做最细粒度查证
分析工作流
新增或深入分析某个 App 时,按五阶段推进(详细命令见 references/analysis-workflow.md):
- 静态分析(头文件级)— 在
headers/ 中 grep 定位类,读属性/方法签名
- 符号分析(方法级)—
nm 提取类的方法符号
- 字符串分析 —
strings 找配置项、通知名、Key
- 伪代码分析(算法级)— 用户用 Hopper 导出伪代码,AI 解读并用 Swift 等价重写
- 导出新头文件(新增 App)—
ipsw class-dump 导出主程序与 Framework 头文件
工具依赖(ipsw / nm / otool / strings / Hopper / Frida)详见 references/analysis-workflow.md。
分析文档规范
每个功能模块的分析文档应包含:
- 概述 — 一句话说明功能和底层依赖
- 交互流程 — 用户操作 → 代码调用链
- 关键类职责 — 每个类的属性和方法签名
- 关键实现细节 — 核心算法、手势优先级、渲染机制等
- Apple 原生重写思路 — 对应关系和实现步骤
注意事项
.gitignore 已忽略 *.ipa 和 extracted_ipa/,大文件不入 git
- 头文件和分析文档入 git,方便跨会话引用
- 逆向分析仅用于学习技术实现方式,最终代码必须是独立重写的