欢迎光临散文网 会员登陆 & 注册

EGALS引擎汉化思路

2023-03-09 20:25 作者:bili_80221738601  | 我要投稿

最近在搞一个egals引擎,简单记录一下。

首先该游戏如果不进行安装则无法打开,使用x32dbg简单分析,它会读取注册表,且在安装过程中会把游戏路径写入注册表,如果不进行安装游戏无法打开,或许可以写一个脚本来写入注册表,但为了方便起见还是先安装。

首先分析使用的文本显示api,可以用的是GetGlyphOutlineA,该api会根据字体信息将文本转换为图片,然后用图片进行显示。字体信息还是放在CreateFontIndirectA的。

进入游戏界面,然后用x32dbg在GetGlyphOutlineA初下断点,开始游戏显示文本,即可找到显示文本中GetGlyphOutlineA的使用位置。

另外日文通常会有编码检测,有时会用系统api(名字忘了),有时会显示文本附近,有时会在什么乱七八糟的地方。这个游戏运气比较好,

GetGlyphOutlineA附近
编码检测

稍微有点经验就会发现这里在做的就是shift-jis的编码检测,修改的话可以改成

修改编码检测

因为中文默认的编码gbk与shift-jis是相似的,只是编码范围大一点。

当然编码一般晚点才修改,这里只是提前说了。

汉化的话核心问题是提取文本,封回文本。

提取文本的话,一般无脑用garbro看看能不能打开,如果可以的话说明算法是公开的,不需要逆向解密算法,提取与封包问题都不大。

一般而言garbro都可以打开,这个游戏也不列外。

在garbro的源码中可以轻易的找到egals的解包算法,核心如下:

(md,b站不支持代码格式,太难受了)

可以发现分为index和pak两部分,index文件指示pak中各个文件的大小和位置,采用的都是异或加密,那就简单了,解密等价于加密。

解包后得到脚本文件,分析脚本文件:

怀疑脚本文件同样有分段,各个段的名称后面为偏移,验证后确实。

各个段的文本是没有加密的,直接提取,就可以了。

封包的时候补零对齐字节,这样可以不懂index文件。另外记得修正偏移。

只要注意到以上问题,汉化就没啥问题了。

EGALS引擎汉化思路的评论 (共 条)

分享到微博请遵守国家法律