-
-
[原创]破解-分析Crackme算法
-
发表于:
2009-6-13 22:18
12296
-
【破文标题】新手-Crackme
【破文作者】仙果
【破解工具】OD,IDA
【破解平台】Windows XP SP2
【软件简介】从看雪上下载的。。。
【破解声明】纯属爱好
------------------------------------------------------------------------
【破解过程】
破解一直都是自己的弱项,尤其是算法,某日从看雪上下载一个crackme,放了两天,正好今天周六,好毒的太阳也没有心情出去耍,干脆就来破解下这个好了。想到,马上开工。
PEID检测为VC++6.0编写,无壳,还好,不然还要脱壳,又麻烦。
OD载入分析,F9运行,输入0123456789提示“Your Password Is Invalid!”,大喜,马上"超级字符串参考",结果发现字符都被加密过,加密算法未知。
只有老老实实的分析了,通过分析,发现字符串的解密函数
CALL 破解我.004018E0:
004018E0 PUSH EDI
004018E1 MOV EDI,DWORD PTR SS:[ESP+C] ; 破解我.00404084
004018E5 PUSH EDI ; /String
004018E6 CALL DWORD PTR DS:[<&KERNEL32.lstrlenA>] ; \lstrlenA //得到字符串长度
004018EC XOR ECX,ECX
004018EE DEC EAX
004018EF TEST EAX,EAX
004018F1 JL SHORT 破解我.00401917
004018F3 PUSH EBP
004018F4 PUSH ESI
004018F5 MOV ESI,DWORD PTR SS:[ESP+10]
004018F9 LEA EDX,DWORD PTR DS:[EAX+1]
004018FC MOV ECX,ESI
004018FE SUB EDI,ESI
00401900 MOV EBP,EDX
00401902 /MOV AL,BYTE PTR DS:[EDI+ECX]
00401905 |XOR AL,22 //解密的KEY
00401907 |MOV BYTE PTR DS:[ECX],AL
00401909 |INC ECX
0040190A |DEC EDX
0040190B \JNZ SHORT 破解我.00401902
0040190D MOV BYTE PTR DS:[ESI+EBP],0
00401911 MOV EAX,ESI
00401913 POP ESI
00401914 POP EBP
00401915 POP EDI
00401916 RETN
00401917 MOV EAX,DWORD PTR SS:[ESP+8]
0040191B POP EDI
0040191C MOV BYTE PTR DS:[ECX+EAX],0
00401920 RETN
00401921 NOP
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课