Touhou LostWord — Reverse Engineering & Offline Preservation
把一款正在运营的联网手游,拆到能读懂、能复现、能离线运行的程度。
这里是一群对《东方归言录》(Touhou LostWord)实现细节感兴趣的开发者,围绕 拆解 → 理解 → 复现 这条线整理出的资料与工程。
我们不发布游戏本体、不含美术音频资源、不提供任何绕过官方服务的手段。仓库里只有研究性质的文档、索引、数据与自研代码。
|
协议、加密、存档结构、主数据表谱系。 把「运行时才知道的东西」变成可检索的文档和结构化数据。 |
IL2CPP 元数据、类型签名、方法地址、Java 壳层。 让二进制的行为可以被定位、被验证,而不只是被猜测。 |
从零重写的服务端与客户端补丁。 用真实协议跑通,而不是伪造一个「能启动」的壳。 |
| 仓库 | 内容 | 主要语言 |
|---|---|---|
| Reference-For-Reverse | 逆向指引与审计报告:通信链路、加密算法、存档模型、主数据表目录与字段字典、资产分析 | Python / Markdown |
| thlw-reverse | 客户端拆解产物:类型转储、签名存根、壳层反编译、元数据与符号表 | C# / Java |
| thlw-offline-server | 进程外离线服务端:复刻官方 HTTP 信封与加解密,实现接口、存档与主数据加载 | Python |
| SkipSplashScreen | 客户端辅助补丁 | C# |
部分仓库为私有,按需申请访问。
我们尽量让每一步都可验证,而不是「看起来能跑」:
- 取证 — 从二进制、抓包、缓存文件里拿到事实,标注来源与置信度
- 建模 — 把事实写成结构(协议字段、表谱系、状态机),能被别人复核
- 实现 — 以建模结果为准写代码,不靠调参逼近
- 验收 — 用测试和真实数据回归;不确定的地方明确报错,不编造数值
一句原则:查不到就返回「不可用」,绝不猜一个看起来合理的数。
| 领域 | 选择 |
|---|---|
| 服务端 | Python · Litestar · msgspec · SQLAlchemy(async) · aiosqlite |
| 协议 | AES-CBC + zlib + Base64,按官方实现逐字节对齐 |
| 存储 | JSON 存档 + SQLite 主数据(221 张表 / 66 万行) |
| 客户端 | BepInEx · Harmony · IL2CPP Interop |
| 工具链 | Il2CppDumper · IDA · jadx · 自研转换脚本 |
- 游戏资源、角色、剧情、音乐、美术的版权归原权利人(NextNinja / Good Smile Company 及各地运营方)
- 本组织只提供互操作与研究性质的文档、索引与分析代码,不附带任何再分发授权
- 不提供游戏本体、APK、资源包、账号或付费内容
- 引用或二次分发前,请自行确认适用法律与授权范围
拆开是为了理解,理解之后才有资格重写。