yijun 发表于 2005-4-9 19:44:52

文章二

【软件名称】:crackme2  
【软件大小】: 4KB
【破解声明】:初学Crack,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
【破解工具】:OD

———————————————————————————————————————————
 
【破解过程】:

我学习过的一个算法CRACKME
004011A3    FF35 44204000   push dword ptr ds:         004011A9    E8 5D000000   call echap512.0040120B;关键CALL
004011AE    83F8 01         cmp eax,1
004011B1    75 1E         jnz short echap512.004011D1
004011B3    6A 30         push 30
004011B5    68 81204000   push echap512.00402081                   ; ASCII "Good For U!"
004011BA    68 8D204000   push echap512.0040208D                   ; ASCII "U Did It!!"
004011BF    FF35 48204000   push dword ptr ds:
004011C5    E8 EB000000   call <jmp.&USER32.MessageBoxA>
004011CA    5E            pop esi
004011CB    5F            pop edi
004011CC    5B            pop ebx
004011CD    C9            leave
004011CE    C2 1000         retn 10
004011D1    6A 30         push 30
004011D3    68 98204000   push echap512.00402098                   ; ASCII "=)"
004011D8    68 9B204000   push echap512.0040209B                   ; ASCII "Wrong S/N#"





0040120B    C8 000000       enter 0,0;来到这里
0040120F    53            push ebx
00401210    52            push edx
00401211    33C0            xor eax,eax
00401213    B8 A6204000   mov eax,echap512.004020A6                ; 假码
00401218    8038 00         cmp byte ptr ds:,0                  ; 是否为空
0040121B    74 60         je short echap512.0040127D
0040121D    33DB            xor ebx,ebx
0040121F    33D2            xor edx,edx
00401221    8A18            mov bl,byte ptr ds:               ; 逐位取假码
00401223    C1C3 08         rol ebx,8                              ; 不带进位左移8位
00401226    03D3            add edx,ebx                              ; edx+ebx=edx
00401228    40            inc eax;自增1
00401229    8038 00         cmp byte ptr ds:,0
0040122C^ 75 F3         jnz short echap512.00401221            ; 没取完则继续
0040122E    52            push edx                                 ; 刚才计算结果
0040122F    68 54204000   push echap512.00402054                   ; ASCII "%lX"
00401234    68 BF204000   push echap512.004020BF                   ; ASCII "3B6B9F05"
00401239    E8 8F000000   call <jmp.&USER32.wsprintfA>
0040123E    BB BF204000   mov ebx,echap512.004020BF                ; ASCII "3B6B9F05"
00401243    803B 38         cmp byte ptr ds:,38               ; 与8比较
00401246    75 35         jnz short echap512.0040127D
00401248    807B 01 44      cmp byte ptr ds:,44               ; 与D比较
0040124C    75 2F         jnz short echap512.0040127D
0040124E    807B 02 43      cmp byte ptr ds:,43               ; 与C比较
00401252    75 29         jnz short echap512.0040127D
00401254    807B 03 41      cmp byte ptr ds:,41               ; 与A比较
00401258    75 23         jnz short echap512.0040127D
0040125A    807B 04 46      cmp byte ptr ds:,46               ; 与F比较
0040125E    75 1D         jnz short echap512.0040127D
00401260    807B 05 33      cmp byte ptr ds:,33               ; 与3比较
00401264    75 17         jnz short echap512.0040127D
00401266    807B 06 36      cmp byte ptr ds:,36               ; 与6比较
0040126A    75 11         jnz short echap512.0040127D
0040126C    807B 07 38      cmp byte ptr ds:,38               ; 与8比较
00401270    75 0B         jnz short echap512.0040127D



———————————————————————————————————————————

【Crack_总结】:

正确的结果应为:8DCAF368 ,符合这样的数很多,我就难得推了,本文重在了解算法~~~~~~~~~~
给一组注册码参考:""$%=)
(注:其实当我断在关键CALL时就能在左下窗口看见8DCAF368,还有~~~~你们就自己看嘛~~~~~~)

xianju110 发表于 2005-9-20 14:04:38

xianju110 发表于 2005-9-20 14:53:54

页: [1]
查看完整版本: 文章二