Crackme_1_Acid_burn
打开exe文件,查看主要的流程
1.首先是一个弹窗:
2.其次三个按钮(两个注册码,一个退出:
serial/name:
serial:
peid查壳
欸~没有壳
破解serial/name:
暴力破解:
输入假码后发现有弹窗和字符串
然后就搜索字符串:
我们看到有两个sorry字符串,根据上面提示,我们需要找的是两个serial,所以才有两个serial,现在我们随便找到一个sorry进入查看是不是我们需要的:
我们看到前面的关键跳,下断点后运行程序查看这个sorry字符串是不是我们需要的字符串:
我们看到这个这个跳转实现了,也就是说这个sorry不会显示,也就等于这不是我们找的sorry,然后我们继续向下执行,去查找我们需要的sorry字符串:
我们往后,又看到了一个sorry,这肯定就是我们需要的sorry了,在这个sorry上方有一个good job,我们可以猜测这就是正确的弹窗,于是我们找到good job 的关键跳改为nop就行了:
寻找注册码:
因为我们要找注册码是如何生成的,所以我们要单步运行程,我们先打断点输入假码,然后步过:
在运行到good job的关键跳前面,我们发现了两个数据的比较:
所以我们猜测这个CW-4018-CRACKED就是注册码,于是我们退出试一遍:
name为1111111111的时候成功了,那我们把name改为22222222呢:
失败了,由此我们可以得到,注册码是随着name改变而改变的。
于是我们回到OD,继续查看
然后我们在goodjob上方发现一串运算代码:
这串代码就代表着注册码的生成机制,先取name的第一个字符的ASNI的值,然后与固定的0x29相乘,在将得出的值翻倍,然后前面加上CW-,后面加上-CRACKED。就是注册码了。
破解serial
serial通过观察,可以发现,它是固定的,因此我们直接搜索字符,输入假码,进行比较就好了。