CrackMe破解之Acid_burn
1. 刚打开程序,就出现一个NAG[hello you have to kill me ], 这是要去我们要把他去除掉。
2.我们点确定,进入,查看界面有serial/name 和serial两种类型的验证界面。
3.这就是程序全部的界面了,要求我们去掉NAG,再通过两个验证。
一、去除NAG
1. 托入OD(ollydbg),F8单步,发现到0042FD97地址的时候出现窗口了,现在在0042FD97下断点,重新加载,F7跟进这个Call中。
2.进入之后再进行F8单步走,查看那个call会出现弹窗。
3.这里又出现了弹窗,下段点00429FC2,重新载入,再F7进入这个call中。
4.这里是00429FC2的Call中继续进行F8单步找关键call或者关键跳。
5.F8单步到0042563D的call中又出现了弹窗,现在往上看到一个je,可以跳过这个call的调用,所以可以在这里修改看看能不能取消掉NAG。
6.将je修改为jmp
7.进行保存,保存为Acid burn1。
8.打开后就会直接没有NAG了。
二、serial/name
1.将刚刚的acid burn1放入OD中,进行中文智能搜索,找到了两处【sorry,The serial is incorect】
2.先双击进入研究研究,发现下面的sorry字符串有两个关键跳,比较符合。
3.jnz要是实现的话就会出现try again,所以我们让jnz不实现,改为je或者nop掉都可以,我选择了NOP。
4.保存文件为Acid burn2
5.再运行 Acid burn2,good job!成功爆破。
算法不难,首先会判断Name的长度不能小于4。其次,会将Name的第一个字符拿出来用十六进制表示,将这个数乘0x29,再乘2,得到的数用十进制表示,加到CW-****-CRACKED中,得出最终的Serial。
附上一个简单的python脚本:
user = raw_input("Please enter your name:")
print 'CW-' + str(ord(user[0]) * int(0x29) * 2) + '-CRACKED'
三、serial
1.将Acid burn2托入OD进行Serial的爆破,关键字符是failed, try again
2.中文搜索引擎,智能搜索,成功搜索到,双击进入反编译界面。
3.和第二个serial/name有点像,将jnz NOP掉,就不会跳转到failed这里。
4.另存为 Acid burn3 到桌面。
5.爆破成功。
至此, Acid burn程序的全部都已crack成功。