这个题,我们也是借助了原创作者的一些小思路
160个CrackMe – 002 - 吾爱破解 - 52pojie.cn
这个主要还是考察我们的汇编能力,如果我们的汇编不行的话,还是要多加练习。所以我们在做这个题的时候不要畏手畏脚,放开手去做,不要害怕错误,逆向就是在错误中吸取经验的。
爆破
我们打开这个软件之后,映入眼帘的是一个
我们为了理解我将账号密码输入成
我们可以得到是这个结果。
我们基本理解程序后,我们在od里面打开,我们进行相关字符串搜索。
我们选择You Get It!
我们可以看到如下结果。
而我们现在的EIP所指的这个je跳转指令,我们如果输入错误,就会通过这个跳转指令走到下面的You get wrong
所以我们可以直接修改这个指令,将它nop掉(无论我们输入什么都会成功),或者改成jne,我们输入错误的可以跳转,但是正确的就不会跳转啦。
如图所示,接下来我们接着f9试试
以上就是爆破法了
算法解析(这个是回归本质,不要觉得麻烦就不看这个,很重要)
我们一步一步来
test si这个指令是判断si是否为0
所以si这个值是关键,才导致下面的跳转
这有一个cmp
我们可以看到
是调用了move这个函数,然后传回参数eax然后再cmp
但是进去这个函数也么看懂什么,所以我们从头开始断点来求
在最后我们发现eax的值就是我们要得到的值。
所以我们直接写代码
就可以得到