在吾爱上找到的练手素材,第一个在很久之前就做过了,网上也有很多这样的分析,今天拿出来,看了一下第二个,粗略看了一下,可能不太细致,姑且当一个自己的学习笔记,若是有哪位看官有不一样的意见,欢迎指点。
接下来进入正题:
文件运行状态,下边开是拖入OD进行破解,我一般喜欢采用关键字搜索的方式进行破解,比较基础但是挺实用,也可以从其他角度入手,比如说API下断点之类的方法。
接下来关键字搜索:
可以看到,我们搜索的目标字符串,直接双击来到它的地址:
那么接下来我们就可以找到,正确的时候输出的信息:
找到之后,下断点,之后我们再网上看看有没有比较字符串或者是字符比较的代码段,可以发现,上边有屌用字符串拼接以及字符串比较的函数,同样我们下断点,方便之后查看:
之后我们直接F4,运行到字符串拼接的函数(因为猜测这块应该是该程序在从内存中组合出自己的密码),可以发现,让我们输入密码,这个时候我们随便输入一串字符串就好,之后运行到我们的字符串拼接的函数,可以发现这个时候的寄存器的值以及堆栈中的参数如下:
123456是我们输入的密码,接下来但不执行,观察变化:
可以看到,运行之后拼接出的字符串,继续单步运行到字符串比较的函数,这时候在堆栈中查看函数的参数:
可以看到,比较的参数是我们输入的密码和程序在内存中组合出来的字符串,因此猜测,我们的密码就是这串程序组合出来的字符串,事不宜迟,我们马上来试验一下:
可以看到已经得到了正确的信息提示,后边应该也不会有太大变故,差不多就到这里结束了,对于名字的校验好像也没注意到,先就这样.
至于#2的破解方法和#1一样:
程序运行:
破解之后:
160个Crackme 2AfKayAsCrackMe#1 以及AfKayAsCrackMe#2
最新推荐文章于 2022-03-13 11:14:05 发布