首页 > 代码库 > Crackme--Acid burn(第一个程序)

Crackme--Acid burn(第一个程序)

Crackme : Acid burn.exe   

难度系数:

工具: Ollydbg(OD)  中文版

 

运行 Acid burn.exe 

 

首先打开OD 加载 Acid burn.exe 输入错误的注册名和密码 提示Sorry,The serial is incorect!(对不起,序列号错误!)

 

 

 

打开OD-->插件-->中文搜索引擎-->搜索ASCLL   快捷键ctrl+F 搜索字符串Sorry,The serial is incorect!的所在位置

 

 

双击进入CPU窗口,这里的地址为0042FA63 我们先记下这个地方方便下次调试(Ctrl+G跳到这个位置)。

 

 

0042FA63 之前有一个jge 跳转指令(大于等于则跳转如果这里跳转了就跳过了提示信息

我们在跳转前面下一个断点(F2下断点查看一下执行情况  运行程序(F9) 重新输入假的注册名和密码 发现程序被断下来了。我们按F7 单步调试 执行到call 00406930

后发现掉进了程序作者设下的深坑。


明显这里并不是我们寻找的提示 我们继续往下找 会发现 存在一个相同的提示  上面有两个字符串Congratz !! (恭喜!!) 和  Good job dude =) (干得漂亮,伙计)  明显这里就是我们要寻找的出口点了。


我们找到Congratz !! 前面的 jnz(不等于 ZF=0)则 跳转  如果跳转成功 会跳转到0042FBEF处 这里就是我们要找的关键跳了~在这条指令之前有一个call 肯定是关键call了。我们使用快捷键Alt+B打开断点窗口,删除掉之前下的断点。回到CPU窗口(Alt+C)

我们在call之前下一个断点跟踪调试(Ctrl+F2重新开始 -- 运行

此时 EAX的值为CW-8856-CRACKED  EDX的值为我们的假密码11111111111111111111111 

这里我们怀疑CW-8856-CRACKED 就是我们要找的注册码 我们进入这个call里看看。



这里我们可以看出   

mov esi,eax  

mov edi,edx

cmp eax,edx

je 00403A9A  

eax和 edx中的值去比较  如果相同则跳转 这里我们就分析出来 密码的确是CW-8856-CRACKED


 


爆破我们想实现爆破肯定要从jnz入手。让ZF=1  jnz不跳转即可。我们修改cmp eax,edx

cmp eax,eax 即可。