-
-
[原创]crackme分析算法+暴力枚举求序列号
-
发表于:
2010-6-14 18:39
4943
-
呃~~~后天要上学。。。
这次的crackme有点难(主要是我把它想得太复杂了,而且枚举程序写错了。。。)
点此下载
========================程序分析====================
程序很短,od载入后直接阅读代码,就找到了检验函数:
004011A9 |. E8 5D000000 CALL crackme5.0040120B ;检验函数
004011AE |. 83F8 01 CMP EAX,1
004011B1 |. 75 1E JNZ SHORT crackme5.004011D1 ; (jump not zero)不相等则去死
004011B3 |. 6A 30 PUSH 30 ; /Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
004011B5 |. 68 81204000 PUSH crackme5.00402081 ; |Title = "Good For U!"
004011BA |. 68 8D204000 PUSH crackme5.0040208D ; |Text = "U Did It!!"
004011BF |. FF35 48204000 PUSH DWORD PTR DS:[402048] ; |hOwner = NULL
004011C5 |. E8 EB000000 CALL <JMP.&USER32.MessageBoxA> ; \MessageBoxA
0040120B /$ C8 000000 ENTER 0,0
0040120F |. 53 PUSH EBX
00401210 |. 52 PUSH EDX
00401211 |. 33C0 XOR EAX,EAX
00401213 |. B8 A6204000 MOV EAX,crackme5.004020A6
00401218 |. 8038 00 CMP BYTE PTR DS:[EAX],0 ; 字符串非空
0040121B |. 74 60 JE SHORT crackme5.0040127D
0040121D |. 33DB XOR EBX,EBX
0040121F |. 33D2 XOR EDX,EDX
00401221 |> 8A18 /MOV BL,BYTE PTR DS:[EAX] ; 当前字符放入EBX末8位
00401223 |. C1C3 08 |ROL EBX,8 ; EBX循环左移8位
00401226 |. 03D3 |ADD EDX,EBX ; 将EBX累加入EDX
00401228 |. 40 |INC EAX
00401229 |. 8038 00 |CMP BYTE PTR DS:[EAX],0
0040122C |.^ 75 F3 \JNZ SHORT crackme5.00401221
0040122E |. 52 PUSH EDX ; /<%lX>
0040122F |. 68 54204000 PUSH crackme5.00402054 ; |Format = "%lX"
00401234 |. 68 BF204000 PUSH crackme5.004020BF ; |s = crackme5.004020BF
00401239 |. E8 8F000000 CALL <JMP.&USER32.wsprintfA> ; \wsprintfA
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)