·汉化新世纪 ·汉化新世纪论坛 ·百家争鸣 ·论坛集萃 ·汉化问答 ·软件介绍
文章首页 >> 汉化教学 >> 非标汉化 >> 修改QT5编译的Vertus Fluid Mask软件的乱码和字体大小    Creative Commons License,创作共用协议(中文版)  署名 非商业性使用 禁止演绎

修改QT5编译的Vertus Fluid Mask软件的乱码和字体大小

作者: wanfu 来源:汉化新世纪 时间:2018-07-08 点击:350

有会员在论坛中反映了这样一款软件,它是QT5编译的,汉化后一部分对话框出现乱码,并且字体也偏小。
http://bbs.hanzify.org/read.php?tid=216298

下面我们来谈谈这款软件的正确汉化方法:
1、用非标宏来提取和写入翻译


2、显示乱码


3、此为QT5编译的程序,经用非标宏中的字符编码修改器反复测试,为toLocal8Bit函数引起,改为toUtf8函数,全部写入即可



4、运行看看,是否显示正确,但是字体太小,QT程序的通病


下面我们来调整字体大小,这里比较复杂
1、我们用 x32dbg 来调试,先设置一下菜单中的选项为如下值


2、加载程序


3、搜索当前模块中的跨模块调用,搜索完成后,输入Font,缩小模块名称的范围


4、找到 setPointSize 函数单击,程序自动转入 CPU 界面


5、我们知道,setPointSize 只有一个大小参数。所以只要查找这个参数即可。
往上翻,看看输入到 setPointSize 函数的参数值是什么?
我们看到了 push eax,这是输入 eax 寄存器中的值,可以确定该函数使用了 eax 中的值。
我们在此下断,再一直按 F9 运行到下断的地方,看到右边 eax 寄存器中的值为 8,如图:


6、那么这个 8 是怎么来的呢?
我们再往上翻,发现有 dec eax 语句,它的意思是 eax  值减去 1,那就说明原来的 eax 值原来是 9,9 不正好是我们中文的字体大小吗?
那我们把它取消掉,汇编为 nop,再重新开始按 F9 直到断点,再看看 eax 寄存器中的值是不是变成 9 了。


7、再把修改 dump 出来,做成补丁,保存为文件。


8、运行看看,是不是正确了啊


最后,感谢济友汉化爱好者QQ群、朵朵、永乐大师。 
 

汉化新世纪 责任编辑: wanfu .:|:. 标签(Tag): 乱码 字体 大小

·上一篇: GUI Design Studio 脱壳后程序的优化 - 使用 Alchemy Catalyst 移动资源段到最后 ·下一篇: 非标宏自动修改长度标识符的视频

· 版权申明: 本文引自《汉化新世纪》,如有版权疑问请及时联系本站,以便本站处理。

· 转载申明: 本文引自《汉化新世纪》[ 作者: wanfu],如需转载请直接联系原始作者,并请注明原始出处。

相关文章                                                                                发表评论 打印此文 关闭窗口

| 设为首页 | 加入收藏 | 联系我们 | 友情链接
Creative Commons License,创作共用协议(中文版)  署名 非商业性使用 禁止演绎
本站内容,除转载或版权特别申明的内容外,皆遵守 创造共用协议中文版之“署名-非商业性使用-禁止演绎 2.5 中国大陆”条款
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.5 China License.
本网站内容源自汉化新世纪论坛的摘录和汉化新世纪成员的原创文章。
凡汉化新世纪论坛的文字皆默认为汉化新世纪与原作者共同拥有并授权发布。
如对本站发布文章有所异议请来信告知,我们将及时删除。
凡商业摘录本站文字请先与我们联系,本站将保留非授权商业发布的追究权利。
凡非商业摘录本站文字请明显注明出处和原作者,并不得改动,凡改动必先征求原作者同意。
苏ICP备05002283号