频道栏目
首页 > 资讯 > 加密解密 > 正文

汉化软件照样破

06-01-01        来源:[db:作者]  
收藏   我要投稿
 自从在《网友世界》上为大家介绍了一些软件破解的知识以后,有许多读者朋友都非常感兴趣,常与笔者在QQ上交流一些破解问题。在谈到软件破解中的爆破技术时,许多朋友都认为这个技术简单实用,破解注册软件时可以说是屡试不爽。不过在与大家交流的过程中,也发现了一些问题,比如某些汉化的注册软件在进行注册时,弹出的是中文错误提示信息,爆破跟踪时,由于错误提示信息已经被汉化了,因此在程序中显示是乱码,无法定位关键跳。许多朋友对此束手无策,因此笔者在这里介绍一下此类软件的破解。
一、汉化软件的破解原理
许多软件汉化得不错,连注册错误提示信息也给汉化了。当我们对这类汉化软件进行反编译后,注册错误提示信息会变成乱码。由于通常的汉化方法是通过某些资源修改器查找英文软件中的字符串,直接将其改成中文的。在这时候我们可以反其道而行之,同样利用资源修改工具,找到注册软件时错误提示信息的资源代码,再定位到反编译后的程序中,就可以找到注册错误提示信息了。
二、实例破解WebEasyMail
原理讲清楚了,现在我们来看一个破解实例。WebEasyMail是一个常用的邮件服务器软件,不过未注册的版本只有25个用户的限制,因此想将其破解注册为无限制的版本。
步骤一:查壳脱壳
破解的第一步,还是先查壳脱壳。运行破解利器Peid,调入软件主程序“easymail.exe”进行查壳(如图1),可知程序是经过UPX加壳的。将“easymail.exe”复制到“UPX.exe”文件夹内,在命令行下进入该文件夹,执行命令:
 
“upx -d easymail.exe”;
脱壳成功后得到一个名为“easymail.exe”的文件,再进行查壳,得知程序是通过VC++编写的。
步骤二:查找错误信息
运行WebEasyMail程序,点击右键菜单中的“注册”命令,打开注册窗口。在序列号中随便输入一个长度大于8的字符串,点击确定后提示“序列号输入错误”(如图2)。

步骤三:定位资源代码
 
我们要用到的工具是eXeScope,运行eXeScope后,调入刚才脱了壳的“easymail.exe”文件。
小提示:eXeScope是方便强大的汉化工具,它能在没有源文件的情况下分析,显示不同的信息,重写可执行文件的资源,包括(EXE,DLL,OCX)等。可以直接修改用 VC++及Delphi编制的程序的资源,包括菜单、对话框、字串表等。
点击展开左边栏中的“资源”→“字符串”,即可查看到由VC++编写的“easymail.exe”中的各种字符串资源。其中就包括了注册错误提示对话框中错误信息(如图3)。点击左侧边栏中的“8”后,在右边窗口中可以看到“122 序列号输入错误”,这个就是我们的注册错误提示信息了。
 
步骤四:寻找错误提示信息
记住刚才找到的资源代码“122”,然后返回刚才的W32Dasm窗口,在串式数据参考对话窗口中寻找刚才的资源代码122。看到字符串列表中有一个“String Resource ID=****”字符串了吗?这就是资源代码ID号。找到“String Resource ID=00122”,可以看到后面的乱码字符为“?鲹e?”(如图4)。这其实就是刚才注册错误提示对话框中“序列号输入错误”字符串了,只不过经过编码转换后变成了乱码。
 
步骤五:寻找关键跳
可能有的朋友还不太确定这就是注册错误提示信息吧?我们继续后面的破解过程吧。双击“String Resource ID=00122”,一般来说应该可以立即返回来到W32Dasm窗口中相应的汇编代码处。但是在这次破解过程序中却没有反应。这也是破解此类软件与一般软件的不同之处。
没关系,我们可以通过查找字符串的方法来找到对应的汇编代码。点击W32Dasm窗口菜单“查找”→“查找文本”,对查找对话框中输入“ID=00122”(如图5),确定后很快就来到代码段中的相应区域(如图6)。
 


向上拖动查看程序代码,可以看到“Referenced by a (U)nconditional or (C)onditional JumpatAddress: 004071B7”,其中的“004071B7”处才是真正的跳转代码段(如图7)。
 

步骤六:修改汇编代码
双击“Referenced by a (U)nconditional or (C)onditional JumpatAddress: 004071B7”代码,来到“004071B7”处,在这里可以看到机器代码为“0F85C0010000”,对应的汇编语句为“jne 0040737D”,这句就是注册码正确与否的验证代码段处。熟悉爆破的朋友一定很清楚了,只要将汇编语句“jne”改为“je”,就可以成功的跳过软件注册码验证,任意注册软件了。
选中该句代码,点击右键,在弹出菜单中选择“Hexedit”命令。在弹出的快速字节编辑器对话窗口中,将“修改字节”中的“0F85C0010000*****”改为“0F84C0010000*****”(如图8)。
 
修改完毕后,点击“保存”按钮,将修改保存到原文件中。用修改过的程序覆盖原来的WebEasyMail程序。重新运行修改过的WebEasyMail程序,在序列号输入框中输入任意数字,确定后就成功的注册软件啦!
从上面的破解过程中,可以看到eXeScope是破解成功的关键,利用该工具,我们可以找到注册错误提示信息对应的资源代码ID号,然后通过ID号确定相应的跳转代码,绕过中文乱码从而找到关键跳成功的爆破。此外,eXeScope在修改自己破解过的软件,打造个性破解软件方面也很有作用,是爱好破解软件朋友们手里一件不可或缺的武器。

相关TAG标签
上一篇:Happy New Year!-红色黑客联盟2006新年祝词
下一篇:测试您的杀毒软件是否偷懒?
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站