N0zoM1z0/touhou-reverse-engineering
GitHub: N0zoM1z0/touhou-reverse-engineering
一个以证据驱动的东方 Project 游戏逆向工程笔记仓库,提供 TH08 和 TH10.5 的地址映射、伪代码及运行时实验脚本。
Stars: 0 | Forks: 0
# 东方 Project 逆向工程
精选的逆向工程笔记、可复现的地址映射,以及针对特定东方 Project 游戏的运行时实验。本仓库按可执行文件进行组织,因此与某个构建版本相关的研究成果不会无意中混入其他版本中。
本仓库包含原始源代码、精简的伪代码、技术说明以及少量的文档记录。它不包含游戏可执行文件、数据存档、IDA 数据库、反编译转储、分数/配置文件、回放文件或提取的游戏资源。请仅将此材料用于您有权检查的软件。
这些运行时实验旨在用于离线研究、剧情通关和练习。请勿将其用于网络对战或篡改挑战结果。
## 目录
```
docs/
IDA_PRO_MCP_SETUP.md Windows IDA + WSL Codex setup
th08/
README.md target summary and operation guide
BLOG.md full Imperishable Night research story
reverse/ address map, notes, and key code
scripts/ attach-only no-life-decrement patcher
assets/ documentation capture
th105/
README.md target summary and operation guide
BLOG.md full Scarlet Weather Rhapsody article
reverse/ HP object layout and damage-site map
scripts/ 1P-only runtime code-cave patcher
assets/ documentation capture
```
## 案例研究
### TH08: 永夜抄
TH08 的研究追踪 `"player DEAD"` 进入 miss/respawn 状态机,识别共享的生命值修改器,并隔离出一条双字节指令:
```
push -1 ; 6A FF, call add_player_lives(-1)
```
在运行时,仅将立即数字节从 `FF` 修改为 `00`。死亡、子弹清除、respawn、Power 损失以及 spell 失败的行为保持不变;Player 计数器不会减少。
请从 [TH08 案例 README](th08/README.md) 开始阅读,然后阅读 [Teaching th08.exe a Tiny Spell](th08/BLOG.md)。
### TH10.5: 绯想天
TH10.5 的研究恢复了一个角色对象布局,其中当前 HP 位于 `+0x174`,最大 HP 位于 `+0x176`,side/index 位于 `+0x334`。五条共享的伤害路径被重定向至运行时 code caves,这些 code caves 对 side 1 保留了原始的减法运算,而对 side 0 则跳过此运算。
击中检测、hitstop、击退、眩晕、特效和对手伤害均保持正常。经测试的用途仅限于离线 1P 剧情/练习模式。
请从 [TH10.5 案例 README](th105/README.md) 开始阅读,然后阅读 [Teaching th105c.exe the Weather Forecast](th105/BLOG.md)。
## 锁定目标
这些补丁均经过字节验证且特定于构建版本。任何不匹配都会导致硬失败。
| 目标 | 模块 | SHA-256 | Image base |
| --- | --- | --- | --- |
| TH08 | `th08.exe` | `330fbdbf58a710829d65277b4f312cfbb38d5448b3df523e79350b879213d924` | `0x00400000` |
| TH10.5 | `th105c.exe` | `49c23d9467b9927ba687ed2b873c4bc2d2f39ddadc9f55051ccf10172c0b7c11` | `0x00400000` |
启动器会在修补前有意验证原始字节。请勿移除这些检查以强制运行未知的构建版本。
## 共享工作流
1. 锁定准确的可执行文件哈希值和 image base。
2. 寻找语义锚点:诊断字符串、对象初始化器或稳定的状态字段。
3. 追踪调用者/被调用者,直到识别出权威的状态写入。
4. 将事件流与资源算术运算分离。
5. 设计最小的运行时干预,且不破坏周围行为。
6. 验证原始字节,修补进程内存,并记录运行时地址。
7. 保持磁盘上的可执行文件纯净,并将每个地址记录为 VA、RVA 和字节。
这两项研究中使用的 IDA/Codex 桥接器已在 [IDA Pro MCP 设置](docs/IDA_PRO_MCP_SETUP.md) 中记录。
## 仓库政策
- 不分发任何东方 Project 的可执行文件、数据存档或 IDA 数据库。
- 不提交任何完整的反编译输出;仅提交为支持某项发现所需的精简摘录。
- 公开代码树中不包含任何用户名、用户特定路径、账户数据、持久性机器标识符或本地日志。
- 运行时补丁仅限于明确进行指纹识别的构建版本,并在字节不匹配时停止运行。
- TH10.5 的运行时修改仅记录用于离线用途。
## 许可证
本仓库中的原始代码和文档基于 [MIT 许可证](LICENSE) 提供。
东方 Project 的名称、游戏行为以及所描绘的游戏内容仍归其各自的权利所有者所有。
标签:IDA, 东方Project, 云资产清单, 外挂, 游戏, 游戏破解, 逆向工具, 逆向工程