将三个真实游戏逆向工程项目的全部成功经验沉淀为标准化、可交付的知识库。 目标:新接入的 AI 无需人工解释,即可按本库规范独立完成游戏资源提取 (解包 → 解密 → 解码 → 分类 → 角色聚合),并正确应对各类异常。
本库源于三个实战项目的经验积累(均已完成并验证):
| 案例 | 引擎/技术 | 难点 | 状态 |
|---|---|---|---|
| 案例一:蜜桃乌托邦 | Unity 2022.3 + IL2CPP + YooAsset 1.5.2 | 无加密;ASTC 纹理;SpriteAtlas 拆分;FMOD 音频 | ✅ 完成(3248 bundle / 13620 文件 / 9615 音频) |
| 案例二:少女回战 H365 | Unity 2019.4 + IL2CPP + AssetBundle | XOR 密钥推导;UnityFS 变长假头;Wwise 音频 | ✅ 完成 |
| 案例三:Cocos 卡牌 | Cocos2d-lua + XXTEA | 密钥挖掘;Spine 3.2 二进制破译 | ✅ 完成 |
三个项目覆盖了移动游戏资源提取的主流技术栈,经验可直接迁移到同类新游戏。
game-asset-extraction/
├── README.md # 本文件:总入口与快速导航
├── docs/ # 文档
│ ├── 01_快速上手指南.md # 新 AI 的第一步(必读)
│ └── 02_案例研究.md # 三个项目的完整复盘(含踩坑记录)
├── tools/ # 工具集(按功能分类,29 个成熟工具)
│ ├── README.md # 工具总索引(分类表 + 使用原则)
│ ├── common/ # 公共库(wfbase.py)
│ ├── crypto/ # 加密解密(XXTEA/XOR/UnityFS假头)
│ ├── spine/ # Spine 骨骼(解析/转换/atlas)
│ ├── unity/ # Unity 资源提取(YooAsset/bin/Data)
│ ├── audio/ # 音频(Wwise bnk / FMOD FEV)
│ ├── image/ # 图片(RGBA/尺寸/rotate)
│ └── classify/ # 分类归置/角色聚合/报告
├── workflows/ # 标准化工作流(3 个 + 总览/决策树)
│ ├── README.md # 引擎识别决策树 + 工作流总览
│ ├── 01_cocos_xxtea/ # Cocos2d-lua + XXTEA + Spine 3.2
│ ├── 02_unity_xor/ # Unity IL2CPP + XOR + 假头 + Wwise
│ └── 03_unity_yooasset/ # Unity IL2CPP + YooAsset(最完整模板)
├── exceptions/ # 异常处理机制
│ ├── README.md # 异常处理总流程
│ ├── 01_错误识别.md # 7 类错误识别特征
│ ├── 02_异常分支.md # 各异常处理流程
│ └── 03_人工介入.md # 上报格式 + 回退方案
└── case_studies/ # 案例研究(实战复盘)
# 1. 读文档
docs/01_快速上手指南.md # 必读:工作方式与流程
# 2. 识别引擎(关键第一步)
workflows/README.md # 引擎识别决策树
# 3. 进入对应工作流
workflows/03_unity_yooasset/workflow.md # 例:Unity+YooAsset详细流程见 docs/01_快速上手指南.md。
| 功能 | 工具 | 说明 |
|---|---|---|
| 公共库 | tools/common/wfbase.py |
路径/日志/进度/manifest解析/分类规则 |
| XXTEA 解密 | tools/crypto/decrypt_all_xxtea.py |
批量解密 Cocos 资源 |
| XOR 解密 | tools/crypto/decrypt_xor_script.py |
解密 script.asset → lua |
| UnityFS 假头 | tools/crypto/extract_unityfs_fakeheader.py |
剥离假头 + UnityPy 导出 |
| Spine 3.2 | tools/spine/skel32_full.py |
3.2 权威解析器 |
| Spine 3.8 | tools/spine/parse_skel38.py |
3.8.20+ 解析器 |
| skel 转换 | tools/spine/convert_skel32_to_38.py |
3.2→3.8 JSON |
| atlas 解包 | tools/spine/unpack_atlas.py |
拆包为独立 PNG |
| YooAsset 提取 | tools/unity/extract_yooasset_bundles.py |
批量导出(并行+断点) |
| Wwise 音频 | tools/audio/extract_wwise_bnk.py |
bnk → wem |
| FMOD 音频 | tools/audio/decode_fmod_fev.py |
FEV → FSB5 → 清单 |
| 分类聚合 | tools/classify/classify_assets.py |
按类型 + 按角色 |
完整索引见 tools/README.md。
- 先探测再动手:任何加密假设先做头部扫描验证。
- 精灵图用 UnityPy
Sprite.image,不要手工解 atlas(rotate 处理极易错)。 - 分类用 manifest 原始路径,目录语义即分类。
- 角色 ID 严格 5 位:
1xxxx角色/2xxxx怪物;7 位是贴图编号。 - 骨骼变体按 bundle hash 隔离:同角色多变体对象名相同。
- 断点续传 + 错误隔离 + 每步验证:三步保证可交付。
- 异常即数据:先识别类型,再按分支处理,不盲目重试。
本库达到以下交付标准:
- ✅ 结构清晰(工具/工作流/异常/文档 分离)
- ✅ 文档完备(每工具 .md + 每工作流 workflow.md + 异常机制 + 案例)
- ✅ 可直接交付新 AI:按
快速上手 → 决策树 → 工作流 → 异常处理即可独立执行 - ✅ 经验可迁移:覆盖 Cocos/Unity2019/Unity2022 三大主流栈