又是摸鱼的一天,这几天把《密语》推完了,果然现实中的妹妹绝对比不上二次元的妹妹,看着CG我的老毛病又犯了,提取出来(之前也提取过一些黄油,不过提取完之后就没看过,一直在硬盘里吃灰)。
接下来是正题,如何提取《密语》的CG
进入主目录发现文件是以.int形式封包的,我记得之前玩的ISLAND也是以.int形式封包的。
密语的打包格式跟ISLAND一样,ISLAND的游戏引擎为cat-system,这款引擎对应的打包格式是.int。
在网上搜索得到了一套Asmodean开发的逆向提取工具exkifint,针对的引擎 cat-system。
工具的使用方法很简单,里面提供了已经编译好的可执行程序,重新创建一个文件夹,将原始文件(.int)和程序放在新建的文件夹里。
目录里提供了exkifintv1 - v3 三个版本,如果不知道怎么用的话,打开powershell,切换到对应目录,直接输入exkifint_v?.exe,就可以得到usage了
这里我用的是exkifint_v2.exe:
1 | $./exkifint_v2.exe ./image.int |
然后返回一堆文件,足足有1000多个,而且还不是同一格式的。正常来说应该是得到hg3格式的文件,然后在将其转换成PNG格式的。
先看看这些文件的后缀名有哪些
1 | import os |
发现了有几个是hg3的格式,还有很多其他格式的,基本上都带3结尾,正常来说得到的文件应该都是hg3格式的,这些格式只有3对应,试着打开这些文件,发现文件头都是hg-3,也就是说,这些文件的真实后缀是hg3,只不过文件名称和后缀被某种算法更改过。
在纸上找找规律,发现是凯撒位移。所以我们只需根据后缀名确定位移距离,然后反向移动就行。
1 | import os |
然后就得到了清一色的.hg3,有的贴吧上说,得到.hg3后,使用hgx2bmp.exe ?.hg3,将hg3转换为bmp。但我没有成功。什么变化也没有。文件只是在程序中过了一遍
于是我使用了另外一种方法,通过GrisaiaExtract进行转换为png格式。
引用
https://moeblog.cn/329.html
https://www.yukict.com/bbs/thread-55377-1-9.html
https://github.com/trigger-segfault/GrisaiaExtractor/releases