-
-
[原创]一个很简单的crackme
-
发表于:
2006-8-6 16:53
5588
-
【文章标题】: 一个在很简单的crackme
【文章作者】: jdxyw
【作者邮箱】: jdxyw2006@163.com
【软件名称】: keyme2
【软件大小】: 28KB
【下载地址】: 自己搜索下载
【保护方式】: http://www.crackmes.de/users/moofy/moofy
【编写语言】: C++
【使用工具】: PEID OD
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
首先,用PeiD 查看,无壳
再运行,发现只需要输入一个序列号就可以了。
然后用OD载入,查看字符串。在破解这个软件的时候,我走了很大的一个弯路,本来这个软件是很简单的,只需几分钟就可以
解决,可是由于经验不足,出了大错。下面就连我的错误一起说下。
开始,我定位于
00401326 |. C74424 04 0020>MOV DWORD PTR SS:[ESP+4],keyme2.00402000 ; |
0040132E |. C70424 1040400>MOV DWORD PTR SS:[ESP],keyme2.00404010 ; |ASCII "××××"
………………中间还有许多的无用的代码,省去……
004015D1 |. 0FAF05 3441400>IMUL EAX,DWORD PTR DS:[404134]
004015D8 |. 0FAF05 3C41400>IMUL EAX,DWORD PTR DS:[40413C]
004015DF |. 69C0 BB010000 IMUL EAX,EAX,1BB
004015E5 |. A3 24414000 MOV DWORD PTR DS:[404124],EAX
004015EA |. C9 LEAVE
004015EB \. C3 RETN
原先,我看到这个软件读取本机用户名和机器名,以为这个序列号与每台的机器的信息有关,而且下面又一大段的运算代码,我以为
在这里有些数学运算。后来才发现,以上代码都是没有的。
下断点到以下代码
0040162A |. 894424 04 MOV DWORD PTR SS:[ESP+4],EAX ; ||
0040162E |. C70424 2930400>MOV DWORD PTR SS:[ESP],keyme2.00403029 ; ||ASCII "%d"
00401635 |. E8 86050000 CALL <JMP.&msvcrt.scanf> ; |\scanf 输入序列号
0040163A |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; | 假序列号
0040163D |. 3B05 24414000 CMP EAX,DWORD PTR DS:[404124] ; |
00401643 |. 75 0E JNZ SHORT keyme2.00401653 ; |
00401645 |. C70424 2C30400>MOV DWORD PTR SS:[ESP],keyme2.0040302C ; |ASCII "
Correct :) Write a keygen and tutorial and submit it to crackmes.de
"
0040164C |. E8 7F050000 CALL <JMP.&msvcrt.printf> ; \printf
00401651 |. EB 0C JMP SHORT keyme2.0040165F
在几次的调试中,发现EAX中即是我们输入的序列号。而DS:[404124]里的内容却从来不曾改变,于是可以知道,DS:[404124]里面
就是真的序列号。这个crackme其实就是这么简单。
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
2006年08月06日 16:51:55
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课