xhao屁孩 发表于 2021-9-15 13:12

xiaoyu2032 发表于 2021-9-16 11:57

先用易语言文本比较特征码,查找” test edx,3 “,并确认前面有如下代码:
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后程序报错。

jy04468108 发表于 2021-9-16 08:54

土办法,直接搜索内存字符串。

云在天 发表于 2021-9-15 14:10

298638651 发表于 2021-9-15 14:14

{:301_1004:}这么快的么...

搜索曾经的回忆 发表于 2021-9-15 14:18

52popojie

byh3025 发表于 2021-9-15 14:36

laos 发表于 2021-9-15 15:33

qq244321232 发表于 2021-9-16 23:00

拿下!有惊无险

komakoma 发表于 2021-9-17 10:36

高手真多啊,不知道什么原理。
页: [1] 2
查看完整版本: 小小CM欢迎来挑战