“一款QT开发的国外软件,大概率是没有做中文支持的,所以你汉化中,不论怎么设置编码都一定是乱码。面对这个问题,你去互联网上找答案,答案却大多是复制粘贴的开发中解决乱码的文章,可是我们是要逆向中解决,于是吾爱破解、汉化新世纪等找过来,盘搜搜个遍,发现基本不是资源过期就是驴唇不对马嘴的抄袭贴,所以我来发一篇干货,同时网盘中上传本期视频片源,可供收藏传播。给那些遇到这个坎过不去,又找不到有用资料的提供帮助!”
准备
【环境和工具】
win7/xp虚拟机环境
pdf2any原版安装程序(qt开发的国外程序,不支持中文,无源码)
ollydbg
Radialix 3
010editor
qt-win-opensource-4.8.2-mingw.exe(相当于QT库支持,核心部件)
qt-creator-opensource-windows-x86-3.3.0.exe(相当于编辑器而已)
MinGW.rar(编译调试环境)
最后三个是QT开发环境,搭建起来有利于学习,当然如果你不想玩QT开发那其实只用装第一个就行了,里面有QT各种库函数的源码,遇到相应程序浏览源码即可
【学习层次】
生搬硬套,能解决大部分QT汉化中乱码问题
搞懂搞透,举一反三
实战图文
一.某QT程序汉化中遇乱码
QT开发的国外软件
不论怎么搞,都是乱码
例如汉化下图中的标题registration
乱码
二.逆向分析寻找原因
1.OD中定位标题字符串
程序载入OD,定位"registration",并查看,程序中都有那些位置会调用这个字符串,如图
发现有三个地方调用了这个字符串地址,全部下断点
2.运行观察
断点下好后,运行程序,观察调用字符串的逻辑流程,发现下的三个断点中有两个在程序启动会被调用,调用的目的分别是作为两个QT库函数的参数,如下图