210 likes | 327 Views
软件的破解与汉化. 唐亮. 目录. 1 、软件破解的几个阶段 2 、带网络验证的软件的破解方法 3 、 U 盘加密狗的破解思路 4 、软件汉化的两种方法 5 、总结. 前言. 软件的破解主要采用逆向工程的方法将已经编译完的软件的产权保护信息去掉。研究破解的主要目的是掌握逆向技术,了解当前软件所采用的保护方法存在的脆弱性,从而在自已开发软件的时候达到更好的保护。 软件的汉化则是将非中文界面的软件通过修改软件中的字符信息来显示中文,方便中国用户的使用。. 软件破解的几个阶段. 1 、爆破阶段 2 、制作补丁阶段 3 、制作注册机阶段
E N D
软件的破解与汉化 唐亮
目录 • 1、软件破解的几个阶段 • 2、带网络验证的软件的破解方法 • 3、U盘加密狗的破解思路 • 4、软件汉化的两种方法 • 5、总结
前言 • 软件的破解主要采用逆向工程的方法将已经编译完的软件的产权保护信息去掉。研究破解的主要目的是掌握逆向技术,了解当前软件所采用的保护方法存在的脆弱性,从而在自已开发软件的时候达到更好的保护。 • 软件的汉化则是将非中文界面的软件通过修改软件中的字符信息来显示中文,方便中国用户的使用。
软件破解的几个阶段 • 1、爆破阶段 • 2、制作补丁阶段 • 3、制作注册机阶段 注:在软件破解的过程中,最低级的是软件的爆破,这种方法也是最简单的。其次是给软件制作补丁,最高级的,也是最难的就是通过算法的分析最终写出通用的注册机。
软件破解-爆破阶段 • 软件的爆破,主要是对程序逆向后,找到需要注册的关键位置将跳转的条件进行修改,达到跳过注册验证的目的。 • 爆破存在两种情况: 【1】输入错误的注册码可以绕过注册提示,但输入正确的注册码后就弹出注册提示。将JE改成JNE 【2】彻底爆破,不管输入的是正确的还是错误的注册码都能绕过注册提示。将JE改成JMP或者NOP掉
软件破解-制作补丁阶段 • 制作补丁的过程可以这样理解,在找到注册的关键位置(可能是某一个寄存器)后进行破解,然后通过工具对特定的寄存器制作补丁。 • 其实补丁就是比较破解前后的软件,然后通过工具,找到关键位置制作出来的。
软件破解-制作注册机阶段 • 注册机的制作是破解过程中最难的,因为它涉及到算法的分析。而算法又涉及到密码学的内容。 • 一般的软件可以通过PEID提供的插件看到用了几种加密的方法。最可怕的就是软件中有很多加密的模块,每个模块都用一种不同的加密算法。
带网络验证的软件的破解 • 1、爆破 • 2、转本地验证 注:带网络验证的软件基本上都集中在游戏的外挂中,而能够写好外挂的人技术上一定很厉害。在写完外挂后都会加上相当有难度的壳,对其软件进行保护。用如上两种办法可能无法破解软件应该就是跟股票相关的软件了。
网络验证破解-爆破 • 这个过程中需要做的第一件事情就是脱壳,只有在水平达到一定程度的时候才可以带壳调试破解的。而通常的情况下脱壳都是非常困难的,90%左右的人都会在这一步被扼杀掉。 • 脱壳后,要做的就是按照正常爆破的思路去做,网络验证其实就是发出一个用户信息的包,在服务器端进行验证,最后将验证的结果返回给客户端。可以跳过客户端的验证,这样就可以成功爆破了。
网络验证破解-转本地验证 • 转本地验证的思路就是: 【1】先截获一个能够试用的正常登录的数据包,这个数据包里面会有服务器的IP地址和端口号。这个东西非常重要。 【2】将得到的IP地址修改本机的IP地址,127.0.0.1,也就说下次再发包验证的时候目的地址是本机,这样不管怎么样返回的都是正确的值。 • 值得注意就是一旦服务器的IP地址更换了,返回的正确数值也有可能会变,这样就有可能不能升级了。
U盘加密狗的破解思路 • 1、切断软件与狗的通信 • 2、通过工具复制U盘中的内容 注:U盘加密狗在一些商业软件中比较常用,商家会认为用这种方法安全性比在程序中加入注册信息更加安全。他们认为只要我不给你U盘的授权,你就没有机会使用软件。其实不然,道高一尺魔高一丈!
U盘狗破解-切断软件与狗的通信 • 软件在启动的时候会读取U盘中的一些基本信息,通常会有两种情况:一是整个程序就读一次U盘进行验证;二是程序中很多关键地方都需要U盘中的数据。第一种情况比较容易,反汇编程序后只需要找到这个位置直接跳过就可以了。对于第二种情况,则麻烦一些,要把所有的地方都找到,然后跳过去。 • 优点:可以任意复制到任何机器上随意使用,不用再次支付加密狗的成本费用; • 缺点:不能控制最终用户的使用,适合本人或公司内部使用。
U盘狗破解-通过工具复制U盘狗 • 而通过工具将U盘中的内容拷贝出来,当软件更新后还可以继续使用,除非他们更换了加密狗中的加密方法。 • 优点:可以再次控制软件的使用者即最终用户。 • 缺点:对于每一套软件都要再次支付加密狗的成本费用。
软件汉化的方法 • 1、直接修改 • 2、制作汉化补丁 注:要懂一些软件开发知识,不同的开发工具生成的资源文件数据结构不同,例如Visual C++,Visual Basic 和Delphi 开发的软件汉化时可能需要不同的工具软件和方法。
软件汉化-直接修改 • 掌握汉化的知识并不难,就像上边说的那样只要具备基本的开发知识,一定的外文水平就可以做。但第一步还是要求要汉化的软件是没有壳的。 • 利用各种修改已经编译好的软件的工具,对所能见到可以修改的外文进行对应的翻译,然后保存。总体来说比较简单。
软件汉化-制作汉化补丁 • 跟制作破解的补丁的过程差不多,通过直接修改的方式做一个汉化版的出来。然后利用工具提供对比,做出一个补丁。 • 只需要运行补丁,就可以直接变成汉语版本的了。 备注:可能有很多软件提供多国语言版,这个一方面是在程序开发的过程就考虑到,采用INI配置文件的形式。还有就是在汉化的时候制作出来的。
软件汉化-汉化的总结 • 1、汉化的难点在于准确完整地定位需要翻译的资源 。 • 2、要掌握基本的翻译规则 。 • 3、要加强汉化后的测试,修正所有发现引汉化引起的错误。
总 结 • 1、破解非常费时。 并不是所有的软件都能一下子就找到关键位置的。需要破解人员反复的进行尝试,所以想学破解的话,一定要有足够的耐心。 • 2、破解需要有技术、能力 技术就是指:懂得基本的程序设计、精湛的汇编语言知识、计算机算法的正确分析和理解 能力是指:破解需要工具,而工具的种类特别多,要具有快速学会各种工具的能力。 • 3、破解要不缺“德” • 4、兴趣是学好破解的支柱
总结-续 • 1、常见的开发语言 c++ vb vc++ delphi .net 易语言
总结-续2 • 2、常用的破解工具