成功破解第一个软件
2010年04月01日
在我做课题的过程中,曾经用到一个很好用的VS2005插件,使用这个插件可以大大缩短软件开发的时间。唯一不爽的就是,这是一个付费软件,只有两个月的试用期。这搞得我很是恼火,于是我在网上找了一个专门破解软件的高手把它给破解了,这样就可以无限制的使用了。从此我便有心搜集有关软件破解方面的资料。大概一个星期之前,我通过搜索引擎,无意中找到了看雪论坛,这是一个非盈利性论坛,专门为对软件破解感兴趣的网友提供一个交流和学习的平台。上面资料很丰富,我按照上面的一些入门教程,比较系统性的阅读了一些基础知识,比如Windows程序设计(主要是Win32程序运行原理)、软件破解原理等等。同时,我熟悉了一些专门的破解工具软件的用法,对破解过程有了一个大概的了解。接下来就是实际操作了,一般初学者都会使用一个很简单的被称为CrackMe的小软件作为破解对象来练习,我也不例外。经过一个星期左右的琢磨,我终于在昨天晚上成功破解了我的第一个CrackMe软件,获得了3组软件注册序列号。经过验证,可以实现完美破解注册。下面简单记录一下这个过程。
我在看雪论坛上下载了一个可用来练习的CrackMe.exe软件,作为我的“小白鼠”。在详细叙述破解过程之前,有必要简单说明一下软件破解的作用。可以说,咱中国老百姓有80%以上用的都是盗版软件。如果没有软件破解者的存在,中国这种穷国家是根本用不起软件的。现在的软件绝大部分都是收费的,有很多的价格还不低。这些软件提供商往往会给软件添加一些限制来迫使使用者付费。这些限制措施包括需要注册码,试用期时间限制等等。我下面要叙述的过程,就是使用特殊手段来获得注册软件的用户名和注册序列号,以达到对软件正确注册的目的。
1、首先使用PEiD对CrackMe进行分析,看出该软件是用Microsoft Visual C++ 6.0写的,没有加壳,这对破解来说相对容易一些。如果软件加了壳,还需要专门的脱壳工具对其进行脱壳才能进一步处理;
2、然后运行反汇编软件IDA Pro,将破解对象加载进来,稍等片刻后,反汇编完成,汇编代码一栏显示出了相应的汇编代码。在整个破解过程中,都是需要直接阅读汇编代码的,因此,软件破解要求破解者有汇编基础。如果学过微机原理甚至汇编语言程序设计那最好了。感谢学校,在我大三时给我们开了一门微机原理课,不然的话我还得临时去学汇编;
3、写过程序的人都知道,在写软件的过程中,经常要用到软件的调试手段,即使用断点来跟踪程序的运行过程。软件破解也不例外。在必要的地方下断点,然后单步执行程序,查看相应的信息。下面是软件的注册框界面:
相信经常安装软件的人会碰到这类对话框。如果你输入的用户名和密码是正确的,则注册成功,否则失败。现在的目的是要找出正确的一组用户名和序列号注册码。下面是IDA Pro反汇编后的部分关键代码:
...............................
.text:0040135B mov esi, ds:GetDlgItem ;注册码。因此在第一个关键语句处下一个断点,并运行程序。随便输入一个用户名及序列号,点注册按钮,立刻被IDA拦下。连续按F8单步执行,当执行完蓝色的语句时,查看寄存器EDX和ESI的值,可见这两者分别存储了输入的用户名Yoda和注册码123456。继续执行到call sub_401020完成后,可见寄存器EAX中的值立刻变成了如下的形式:3394A-AF62E-KLIPP-7Q541-365AB,可以很兴奋的发现,这个就是由用户名Yoda通过软件计算出来的正确注册码,并把这个注册码记下来。下面一些语句就是对比这个正确的注册码和输入的注册码了,因此不多说。
还有最后一个关键语句也很值得注意。这是一个跳转语句JNZ,其意思是如果注册码输入正确,则不跳转,否则跳转到注册失败处理。如果已经取得了正确的注册码,则这里就无所谓了;否则的话,可以在这里将整句代码都删除,并用NOP语句替代,这样不管你输入什么,都不跳转,也即注册成功。这就是所谓的爆破破解,不过一般破解高手是不屑于爆破的,写出注册机是他们的最高目标。
到此为止,我已经成功获得了该软件的一组用户名和对应注册码。换做其他的用户名,可获得不同对应注册码,如下我获得了三组,经验证均可注册成功:
Yoda 3394A-AF62E-KLIPP-7Q541-365AB
Eddy XXDA1-A5E4E-KL4P8-76741-72V2Z
1234 Y6WXB-ABGHE-KL4J8-MSTQQ-2461A
2010年04月01日
在我做课题的过程中,曾经用到一个很好用的VS2005插件,使用这个插件可以大大缩短软件开发的时间。唯一不爽的就是,这是一个付费软件,只有两个月的试用期。这搞得我很是恼火,于是我在网上找了一个专门破解软件的高手把它给破解了,这样就可以无限制的使用了。从此我便有心搜集有关软件破解方面的资料。大概一个星期之前,我通过搜索引擎,无意中找到了看雪论坛,这是一个非盈利性论坛,专门为对软件破解感兴趣的网友提供一个交流和学习的平台。上面资料很丰富,我按照上面的一些入门教程,比较系统性的阅读了一些基础知识,比如Windows程序设计(主要是Win32程序运行原理)、软件破解原理等等。同时,我熟悉了一些专门的破解工具软件的用法,对破解过程有了一个大概的了解。接下来就是实际操作了,一般初学者都会使用一个很简单的被称为CrackMe的小软件作为破解对象来练习,我也不例外。经过一个星期左右的琢磨,我终于在昨天晚上成功破解了我的第一个CrackMe软件,获得了3组软件注册序列号。经过验证,可以实现完美破解注册。下面简单记录一下这个过程。
我在看雪论坛上下载了一个可用来练习的CrackMe.exe软件,作为我的“小白鼠”。在详细叙述破解过程之前,有必要简单说明一下软件破解的作用。可以说,咱中国老百姓有80%以上用的都是盗版软件。如果没有软件破解者的存在,中国这种穷国家是根本用不起软件的。现在的软件绝大部分都是收费的,有很多的价格还不低。这些软件提供商往往会给软件添加一些限制来迫使使用者付费。这些限制措施包括需要注册码,试用期时间限制等等。我下面要叙述的过程,就是使用特殊手段来获得注册软件的用户名和注册序列号,以达到对软件正确注册的目的。
1、首先使用PEiD对CrackMe进行分析,看出该软件是用Microsoft Visual C++ 6.0写的,没有加壳,这对破解来说相对容易一些。如果软件加了壳,还需要专门的脱壳工具对其进行脱壳才能进一步处理;
2、然后运行反汇编软件IDA Pro,将破解对象加载进来,稍等片刻后,反汇编完成,汇编代码一栏显示出了相应的汇编代码。在整个破解过程中,都是需要直接阅读汇编代码的,因此,软件破解要求破解者有汇编基础。如果学过微机原理甚至汇编语言程序设计那最好了。感谢学校,在我大三时给我们开了一门微机原理课,不然的话我还得临时去学汇编;
3、写过程序的人都知道,在写软件的过程中,经常要用到软件的调试手段,即使用断点来跟踪程序的运行过程。软件破解也不例外。在必要的地方下断点,然后单步执行程序,查看相应的信息。下面是软件的注册框界面:
相信经常安装软件的人会碰到这类对话框。如果你输入的用户名和密码是正确的,则注册成功,否则失败。现在的目的是要找出正确的一组用户名和序列号注册码。下面是IDA Pro反汇编后的部分关键代码:
...............................
.text:0040135B mov esi, ds:GetDlgItem ;注册码。因此在第一个关键语句处下一个断点,并运行程序。随便输入一个用户名及序列号,点注册按钮,立刻被IDA拦下。连续按F8单步执行,当执行完蓝色的语句时,查看寄存器EDX和ESI的值,可见这两者分别存储了输入的用户名Yoda和注册码123456。继续执行到call sub_401020完成后,可见寄存器EAX中的值立刻变成了如下的形式:3394A-AF62E-KLIPP-7Q541-365AB,可以很兴奋的发现,这个就是由用户名Yoda通过软件计算出来的正确注册码,并把这个注册码记下来。下面一些语句就是对比这个正确的注册码和输入的注册码了,因此不多说。
还有最后一个关键语句也很值得注意。这是一个跳转语句JNZ,其意思是如果注册码输入正确,则不跳转,否则跳转到注册失败处理。如果已经取得了正确的注册码,则这里就无所谓了;否则的话,可以在这里将整句代码都删除,并用NOP语句替代,这样不管你输入什么,都不跳转,也即注册成功。这就是所谓的爆破破解,不过一般破解高手是不屑于爆破的,写出注册机是他们的最高目标。
到此为止,我已经成功获得了该软件的一组用户名和对应注册码。换做其他的用户名,可获得不同对应注册码,如下我获得了三组,经验证均可注册成功:
Yoda 3394A-AF62E-KLIPP-7Q541-365AB
Eddy XXDA1-A5E4E-KL4P8-76741-72V2Z
1234 Y6WXB-ABGHE-KL4J8-MSTQQ-2461A