[汉化问题] NEKOSDK引擎汉化问题
adsf0427 opened this issue · comments
在尝试汉化游戏 [WAFFLE] 毒舌悪魔とムッツリ天使との四畳半暮らし时,提取脚本并修改游戏文本为中文字符后,使用GBK编码重新注入文本时,游戏显示出现乱码。
步骤:
- 使用 engine_nekosdk 提取脚本并修改游戏文本。
- 将文本的编码设置为GBK。
- 将修改后的文本重新注入脚本。
实际行为
游戏中文本显示为乱码。
首先使用WinHex查看导入到脚本的编码是否为GBK,不是则请修改成GBK导入
修改DBCS字符的边界检查(SJIS范围改到GBK范围)
在x32dbg中打开exe,此时停在ntdll.dll的代码区(注意窗口标题显示的模块信息)
点击菜单栏下方的->
会默认停在游戏exe的入口点(注意窗口标题显示的模块信息,此后所有操作都需要在这个模块内)
在反汇编窗口右键搜索常量
弹出该窗口,第一栏输入0x9F
选中cmp
开头的这个结果并双击,自动跳转到反汇编窗口
观察现在的反汇编窗口,如果刚刚选中的指令的其上是一个0x81
则该位置正确
选中 cmp al 9F
按下空格,编辑该条汇编指令,将0x9F
修改成0xFE
修改CreateFontA的charset
两个选择
- 使用HookFont自动处理
直接hook CreateFontA 修改charset的同时也可以修改字体 - 手动修改(仅修改charset)
一般来说这个引擎只有一处统一调用CreateFontA
,则只需要搜索所有的Intermodular call
既可以
依旧是在反汇编窗口右键
输入筛选字符串CreateFont
可以看到唯一结果,双击转到反汇编窗口
其上有个push 80
,与刚刚方法一样,修改成0x86
修改完成过点击菜单栏下方的创可贴图标
,表示保存修改的内容,在弹出的对话框中确认修改的内容后保存文件
效果
附件
感谢,解决了