# TH095：东方文花帖 1.02a 的函数级重建

> 为日版 Touhou 9.5：东方文花帖 1.02a 原可执行文件重建源码；只有使用固定版本 Visual C++ .NET 2003 构建、并与单一经哈希核验的目标进行可复现字节比较后，才认定函数级一致。整个程序也能编译链接为可游玩的 Windows i386 可执行文件，而 README 将可玩性、函数匹配与整个可执行文件一致性列为相互独立的状态。

- 类型：案例
- 目标：游戏
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-10-18
- 收录于：2026-10-19
- 原始资源：<https://github.com/N0zoM1z0/th095>
- 一手来源：<https://github.com/N0zoM1z0/th095/blob/6084b36cfa90ac1720f0cba36caec3ee56fc5e1f/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/th095-reconstruction-case/>
- 记录 JSON：<https://awesomerea.org/resources/th095-reconstruction-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/th095-reconstruction-case/index.md)

## 使用条件与局限

- **前提条件：**需自备与 README 所列大小、SHA-256 和 MD5 一致的日版 1.02a 原版 th095.exe，并导入为 resources/th095.exe；游玩还需要游戏数据。README 说明仓库不含受版权保护的可执行文件、游戏数据和私有分析数据库，公开 CI 只运行不依赖目标文件的检查。
- **前提条件：**scripts/bootstrap-tools.sh 需要 curl、git、sha256sum、tar、unzip、uv 和 Wine，随后获取以校验和固定的 Ghidra 12.1.3、Temurin JDK 21、objdiff 3.8.0，以及来自第三方存档仓库的 Microsoft Visual C++ .NET 2003（13.10.3077）二进制；reccmp 0.1.6 也固定版本。scripts/build-whole.py 从零编译并链接生产构建图，拒绝生成桩代码或强制链接的映像。
- **测试证据：**自动生成的 PROGRESS.md 报告：1,880 个候选中有 697 个已确认的原作函数，全部具备源码，其中 696 个达到规范一致，覆盖已确认原作字节的 99.22%；Controller::GetInput 仍有一个字节不同。README 将语义重建列为进行中、Windows x86-64／Linux／Web 移植列为计划，并以 v0.1.0-windows-i386 标签固定可玩基线，但未附发布二进制。
- **测试证据：**认定一致须通过零差异的 COFF 函数比较，并记录在匹配台账中；Ghidra、IDA MCP 和运行观察只作为辅助证据。README 引用一段使用仅供测试的无敌启动器完成的全流程运行视频，另有正常构建的单独测试；RUNTIME_ISSUES.md 注明这些检查针对 2026-09-10 的源码，之后的语义改动只经过编译和链接验证。
- **许可：**MIT 许可覆盖仓库代码与文档，不涵盖游戏或其素材；下载的编译器与工具各有条款。仓库包含编程智能体规则与技能以及 GPT 网页版 Ghidra 桥接；REA 另行发表的东方重建文章讨论了此项目。

## 一手来源

1. <https://github.com/N0zoM1z0/th095/blob/6084b36cfa90ac1720f0cba36caec3ee56fc5e1f/README.md>
2. <https://github.com/N0zoM1z0/th095/blob/6084b36cfa90ac1720f0cba36caec3ee56fc5e1f/docs/PROGRESS.md>
3. <https://github.com/N0zoM1z0/th095/blob/6084b36cfa90ac1720f0cba36caec3ee56fc5e1f/docs/ORACLES.md>
4. <https://github.com/N0zoM1z0/th095/blob/6084b36cfa90ac1720f0cba36caec3ee56fc5e1f/docs/RUNTIME_ISSUES.md>
5. <https://github.com/N0zoM1z0/th095/blob/6084b36cfa90ac1720f0cba36caec3ee56fc5e1f/docs/TOOLS.md>
6. <https://github.com/N0zoM1z0/th095/blob/6084b36cfa90ac1720f0cba36caec3ee56fc5e1f/config/tools.lock.toml>
7. <https://github.com/N0zoM1z0/th095/blob/6084b36cfa90ac1720f0cba36caec3ee56fc5e1f/scripts/bootstrap-tools.sh>
8. <https://github.com/N0zoM1z0/th095/blob/6084b36cfa90ac1720f0cba36caec3ee56fc5e1f/.github/workflows/ci.yml>
9. <https://github.com/N0zoM1z0/th095/blob/6084b36cfa90ac1720f0cba36caec3ee56fc5e1f/LICENSE>

## 同分区更多条目：游戏

- [《缩小帽》：面向五个 ROM 的 GBA 反编译重建](https://awesomerea.org/zh/resources/zelda-tmc-decomp-case/index.md) · 案例
- [The Sims: Bustin' Out：AI 驱动的部分 GBA 一致性反编译重建](https://awesomerea.org/zh/resources/sims-bustin-out-gba-decomp-case/index.md) · 案例
- [《风之杖》：以哈希校验重新链接的 GameCube 版反编译](https://awesomerea.org/zh/resources/wind-waker-decomp-case/index.md) · 案例
- [Touhou 6：重建东方红魔乡 1.02h 版源码](https://awesomerea.org/zh/resources/th06-decomp-case/index.md) · 案例
- [Touhou 7：重建东方妖妖梦 1.00b 版源码](https://awesomerea.org/zh/resources/th07-decomp-case/index.md) · 案例
- [《黄昏公主》：GameCube 版代码完全一致的反编译](https://awesomerea.org/zh/resources/twilight-princess-decomp-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
