dwgx@blog:~$dwgx
> cd ../posts

th08-re: 啃东方永夜抄的逆向

// created

th08-re 是《东方永夜抄》(Touhou 08) 的逆向工程项目,把 ZUN 十几年前用 C 写的这款弹幕游戏,从没有源码的二进制里一点点拆回可读的 C 代码。这仓库是 GensokyoClub/th08-re 的 fork,我拉到自己这边当本地实验场和备份,不是我的原创成果。

东方是 ZUN 一个人拿 C 写的,年代久、体量小、逻辑密,弹幕运动、判定、随机数、回放全塞在二进制里。原作者行为能复现,社区也愿意一起考据,拿来练 RE 比随便找个商业壳干净得多。

最有意思的是 replay 和随机数这块。弹幕 replay 能一帧不差重演,靠的是完全确定性:同样输入加同样 RNG 种子,必然跑出同样的弹幕。逆到这一层,就能看清当年怎么用一个朴素伪随机撑起整局的随机感,也顺带解释了为什么 replay 跨版本会崩。

顺手把碰撞判定和坐标系也翻了。擦弹判定框多大、什么时候算 miss,这些玩家眼里的玄学,落到代码里其实相当直白。

它就是份 fork,可能跟不上上游同步,完整文档和 license 以上游 GensokyoClub/th08-re 为准。另外提醒自己:这类项目绝不提交原版商业二进制、私有逆向素材和本机路径。