CRACK秘籍之爆破

网上有许多的软件都是共享软件,即当用户没有注册只能用其一部分功能或有只能用一段时间或在次数上进行限制。这样的软件分为两种,一种是软件代码完整,但是要注册才能完全使用;另一种是根本没有写只有注册后才能使用的功能的代码。而我们所要CRACK的当然是前者。
破解加密软件,一般分为两种方式:一种静态破解;一种是动态跟踪破解。这里我主要给大家说说静态的破解方法。在讲实例之前我再多说几句,对软件实施爆破原理就是把关键的跳转改成不跳转或无条件跳转,从而达到我们无论输入什么注册码,都会被爆破的软件认可,所以关键就是找到那个跳转指令。

实例1:木马克星
软件名:Ipormar,大名鼎鼎的木马克星,一个很著名的安全软件,能清除5000多种木马、病毒,而且还自带防火墙,功能强大,*作也很简单,对于PC的安全起到了很好的保护作用。
它是个共享的软件,需要注册用户才能使用全部功能,一运行没注册的Iparmor,便提示用户注册,这里所谓的“更好的使用软件”指的是未注册用户不能使用软件的杀毒功能,但是可以查出并有没有病毒。晕,安全软件不能杀毒那还有什么用呢?于是我们便要对它进行爆破!
在爆破之前我们得准备静态破解的几个工具, w32dasm黄金中文版.(静态跟踪破解的利器,也是我的最爱),Peid v.0.8一侦壳软件,可以查出大部分的壳,UltraEdit等会儿修改程序代码时用到。OK,Let’go!
打开Iparmor,点击图1中的“继续”,在下拉菜单中选择“注册”,弹出对话框,点击“确定”关闭它,马上会弹出一个网页,是Iparmor的官方网站,不管它,关闭网页,我们将看到程序要你把得到的和用户名输入注册码输入,我们没注册当然没有啦。用户名随便输入一个,我输入:magic dog,注册码:123。点击“注册”,弹出错误提示框“注册失败!”好,就是它了,看到这个就好办了。打开PEID,查看是否加壳,看来没有加壳,是PE文件, 没加壳就继续下一步吧,加壳我们就用工具来脱壳。打开w32dasm黄金中文版,选择好路径,载入Iparmor主程序,等待一会儿,出现Iparmor的汇编代码,单击菜单栏上的“参考”—>“串式参考”,弹出一个窗口,把右边的滚动条向下拉,找到“注册失败”这几个字,双击这一行,当我们没有输入正确的注册码或用户名时程序跳转到这里,既然它要跳转,那我们就让它不要跳转。向上找代码,注意“JE,JNE,JMP,JLE,”之类的跳转指令。

Icefire:在爆破程序时一般若出现的是JE或JNE的跳转指令,那我们就把与之相对应的机器码中的5改成4或倒过来把4改成5,如“:00401111 74ob je00401231”,“00401111”是程序地址代码,以“00401000”开始。“74ob”是机器码,即后面指令的机器码,我们要修改指令就得修改它,“je00401231”跳转指令,指若符合某某条件程序便跳转到“00401231”处。而“JLE”或“JMP”呢,则是修改机器码中的“7E”为“EB”或倒过来修改“EB”为“7E”。

我们来到如下代码处,看到“je00574215”这句代码没有?如果跳转到“00574215”处就会提示用户注册失败,这时一定会想到改那个跳转“JE”吧?呵呵,不急,请看清楚上面的“Referenced by a```````````````Jump at Address: | 00574115(c)”,如果你改这个跳转成“jne”的话,是行不通的。关键语句“Jump at Address|:00574115(c)”说明是由“00574115”跳转到这里来的,那好,我们去“00574115”处,看到没有,这里有个跳转,真正的关键跳转在这里,只要注册码不对就跳!我们就改这个“jne“吧,记住机器码“0F85E5000000”,等会就修改它。
在对程序修改前,我们得算出Offset,即偏移量,以下便是我算偏移量的经验:
Code Offset+(当前的代码地址-开始代码的地址)=Offset
提醒一般开始代码地址是“00401000”,这是我总结出来的经验。当算出来的地址不满8位时,向前加0直到8位。另外,因为这是汇编所以一切算法都采用16进制来算!Code Offset可以在当我们用W32DASM打开要破解的程序时找到,最常见的是Code Offset=00000400 或Code Offset=00001000。现在我们开始算:
400(Code Offset)+(00574115-00401000)=173515=00173515
是16进制,你可以用Windwos自带的计算器来算。现在我们进行下一步。打开UE(ultraedit),载入Iparmor,拉动右边的滚动条,找到地址“00173515”,眼熟吧?对,这就是先我叫大家记住的机器码“0F85E5000000”,现在我们修改机器码中的那个“85”为“84”,也就是改“JNE”为“JE”,修改后机器码为“0F84E5000000”,好,我们点击UE工具栏上的“文件”-“保存”,保存好文件,我们再来注册,用户名和注册码随便输入,反正那个跳转已经不起作用了。
后来我发现,Iparmor是在启动前检测注册表(registry)来判断是否为注册用户的,路径是:HKEY_USERS/.DEFAULT/Software/Angelsoft/iparmor,所以你也可以不爆破,直接在这里新建两个键值我想也是可以的。



实例2:超级打字通
这个例子不是对共享软件下手,我们要活学活用,我已经讲了爆破原理,那么我们为什么不可以把它用在一些要密码才能进的地方呢?这里我以“全能打字教室,超级打字通”为例子。
想当初我练习打字的时候就用的它,里面有个管理员设置,要密码,但是我不知道密码,于是就想可不可以也把它爆破呢?改掉那个跳转?于是便试了一下,竟然成功了,现在把经过告诉大家,希望以此打开大家的思路。
首先还是用PEID看它有没有加壳,加了壳不利于我们分析软件的,没加壳,是PE文件。

运行“全能打字教室,超级打字通”选择“管理员设置”,要求输入密码,随便输入提示密码错误,OK,打开W32DASM,载入“全能打字教室,超级打字通”,先记下Code Offset为00000400,然后单击工具栏上的“参考”->“串式参考”,向下拉,找到“口令错误”,双击它,来到这里,向上翻可看到一个跳转,但是请不要急,再向上翻你又将看到一个“Referenced by a```````````````Jump at Address: | 0055515B(c)”的语句,我们还是去“0055515B”,在“0055515B”处,马上便可以看到一个关键跳转语句“75OD jne0055516A”,OK,我们就修改它吧,算出偏移量,把它载入到UE找到地址后,将“74OD”修改成“75OD”保存,退出。现在运行“全能打字教室,超级打字通”,进行管理员设置,要求输入密码,随便输入一个回车,成功进入!至此程序被爆破成功!

不知大家是否注意到,图17中有这样一段话:“*possible StringData Ref from Code Obj-> “zhangxiaobinok””,我看到这个时,觉得很可疑,因为这是该软件作者的名字,于是便猜测是否为管理员密码?一试居然成功了。所以大家在看代码时一定要多留心,多注意,还要做好笔记,这样往往会使你事半功倍。好了,今天就说到这里。BYE-BYE!

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值