Crackme_1_Acid_burn

打开exe文件,查看主要的流程

1.首先是一个弹窗:

2.其次三个按钮(两个注册码,一个退出:

serial/name:

serial:

peid查壳

欸~没有壳

破解serial/name:

暴力破解:

输入假码后发现有弹窗和字符串

然后就搜索字符串:

我们看到有两个sorry字符串,根据上面提示,我们需要找的是两个serial,所以才有两个serial,现在我们随便找到一个sorry进入查看是不是我们需要的:


我们看到前面的关键跳,下断点后运行程序查看这个sorry字符串是不是我们需要的字符串:

我们看到这个这个跳转实现了,也就是说这个sorry不会显示,也就等于这不是我们找的sorry,然后我们继续向下执行,去查找我们需要的sorry字符串:

image-20200701151034276

我们往后,又看到了一个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通过观察,可以发现,它是固定的,因此我们直接搜索字符,输入假码,进行比较就好了。

posted @ 2020-07-02 15:46  Kylimi  阅读(200)  评论(0编辑  收藏  举报