封面《イノセントガール》
前言
因为前年的时候想要机翻《彼女は高天に祈らない》这部作品,就试着进行拆包。但是发现常用拆包软件如Garbro、KrkrExtract等一些常见拆包封包工具都只能拆第一层包,没法继续拆其中的文本,其他音声什么倒是可以。考虑到当时资料比较少,同时为了防止自己再次忘记,因此记录一下之前的拆包流程。
前期工作
以《彼女は高天に祈らない》为例,打开游戏目录,可以看到如下文件:
其中bg.bin
为一些背景图,gfx.bin
里面主要为立绘、差分表情、CG等,se.bin
为音效,kanosora.bin
主要为游戏内的一些战斗系统程序,kanosora.cfg
为游戏的启动配置,kanosora.exe
为启动游戏,opening.mpg
和opening_hd.mpg
为op动画。script.bin
为游戏文本。snd.bin
为一些游戏背景音,voice.bin
为游戏角色语音。
其中除了scripts.bin
其他都只有一层压缩,可以直接用Garbro等软件拆包。而scripts.bin
为拆开如下图所示,内部还有一层压缩,需要进一步处理。且Grabro没有对escu:de老游戏有封包,因此了解如何进行拆包封包还是有必要的。
拆包
文本第一层拆包
用hex编辑器打开scripts.bin
,这里推荐能看日文的,我用的是010 editor,像vscode的hex editor这种插件不支持其他语言不容易破解,可以看到如下图所示:
查询文件开头的magic number ESC-ARC2,可以通过google或者github搜索。可以找到asmodean大佬的破解文档,asmodean’s reverse engineering page。这里有详细的解释,可以看一下。也可以看到Crass-source提供的格式说明。
1 | ESC-ARC2格式: |
文本第二层拆包
解压缩后我们可以得到各个章节的文本,此处我们打开解码得到的a_prol01_1.bin
,可以看到如下图所示。这个时候换成日文编码就可以看到相对应的文本了。
这部分的拆包封包可以参考EscudeEditor的实现。大佬的博客原本有对其进行说明,现在没了,但其实看代码也能了解如何解码的。
战斗
最后的战斗系统文本主要在kanosora.bin
中的game_data.bin
中,这部分我不太会拆也没找到有人拆包。只能先放弃。
总结
这篇文章主要是为我记录一下之前的拆包流程,方便我后续重启项目的时候快速回顾