mov edx,dword ptr ss:
mov ecx,dword ptr ss:
test edx,edx
Jnz *******
找到一处,查到其上级调用代码为”call 0040103D“
搜索该代码,共有两处调用。
设下断点,OD跟踪看一下流程,发现程序执行一次后弹出结果后OD附加的进程就结束了,仔细跟了一下过程,发现程序流程如下:在点击按钮后就隐藏现有窗口,然后运行一个新的进程,并将输入字符串做参数传入,然后在结束旧的程序进程。
这样OD就没办法跟踪后续的执行过程了。
单步进入0040103D,可以看到里面有字符串比较过程,输入码和”52pojie“进行比较,但实际上这里只是一个干扰,输入52pojie也不正确。
了解了程序设计意图,就可以更好的分析了,两处”call 0040103D“,在正常执行的时候,只执行第二处调用,因此判断第一处调用应该就是重新启动进行后需要执行的地方,把后面40120F处的一个跳转nop掉,执行就ok了。
另外一个就是,搜索关键字密码,可以在内存中找到,其中有一处有”52popojie“字符串,尝试一下可以发现是真码。
这个crack的难度就在重新打开一个进程去判断,没法用OD一直跟踪,本来想在前面”401168“处nop掉跳转让程序第一处启动强制进入第一个”call 0040103D“,但是可能是因为没有传入参数的问题,nop后程序报错。
土办法,直接搜索内存字符串。
{:301_1004:}这么快的么... 52popojie 拿下!有惊无险 高手真多啊,不知道什么原理。
页:
[1]
2