爆破vcrkme01

系统 : Windows xp

程序 : vcrkme01

程序下载地址 :http://pan.baidu.com/s/1mh1n33y

要求 : 爆破

使用工具 :OD 

可在“PEDIY CrackMe 2007”中查找关于此程序的破文,标题为“标志位法爆破实例”。

 

OD载入程序根据字串提示找出关键算法:

00401223   .  68 FF000000   push    0FF                              ; /Count = FF (255.)
00401228   .  68 30694000   push    00406930                         ; |Buffer = vcrkme01.00406930
0040122D   .  68 E8030000   push    3E8                              ; |ControlID = 3E8 (1000.)
00401232   .  50            push    eax                              ; |hWnd => 00490736 ('[v0!d] Crackme - v0.01',class='#32770')
00401233   .  FFD6          call    esi                              ; \GetDlgItemTextA
00401235   .  8B0D 28694000 mov     ecx, dword ptr [406928] 0040123B   .  68 FF000000   push    0FF                              ; /Count = FF (255.)
00401240   .  68 306A4000   push    00406A30                         ; |Buffer = vcrkme01.00406A30
00401245   .  68 EA030000   push    3EA                              ; |ControlID = 3EA (1002.)
0040124A   .  51            push    ecx                              ; |hWnd => 00490736 ('[v0!d] Crackme - v0.01',class='#32770')
0040124B   .  FFD6          call    esi                              ; \GetDlgItemTextA
0040124D   .  68 306A4000   push    00406A30
00401252   .  68 30694000   push    00406930
00401257   .  E8 A4FDFFFF   call    00401000
0040125C   .  83C4 08       add     esp, 8
0040125F   .  83F8 01       cmp     eax, 1                           ; eax 是否为1?
00401262   .  A3 646C4000   mov     dword ptr [406C64], eax 00401267      75 65         jnz     short 004012CE                   ; 不是则跳转出错
00401269   .  8B15 28694000 mov     edx, dword ptr [406928] 0040126F   .  6A 40         push    40                               ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
00401271   .  68 80604000   push    00406080                         ; |good job! - cracked!
00401276   .  68 50604000   push    00406050                         ; |send your solution to : [email protected]
0040127B   .  52            push    edx                              ; |hOwner => 00490736 ('[v0!d] Crackme - v0.01',class='#32770')
0040127C   .  FF15 C4504000 call    dword ptr [<&USER32.MessageBoxA>>; \MessageBoxA

这里F7进入标志eax的子程序:

00401183      8B5424 14     mov     edx, dword ptr [esp+14]          ; 对edx的最后一次赋值
00401187      B9 40000000   mov     ecx, 40
0040118C  |.  33C0          xor eax, eax 0040118E  |.  BF 446B4000   mov     edi, 00406B44
00401193  |.  F3:AB         rep     stos dword ptr es:[edi] 00401195  |.  5F            pop edi 00401196  |.  5E            pop esi 00401197  |.  5D            pop ebp 00401198      8BC2          mov     eax, edx                         ; 最后将edx的值传入标志eax
0040119A      5B            pop ebx 0040119B      C3            retn

程序最后对eax的值进行了设置,我们也在最后将赋值的指令(地址401198)改成:

inc eax

效果如下:

爆破vcrkme01_第1张图片

你可能感兴趣的:(爆破vcrkme01)