美文网首页
OllyDbg笔记1-crackme3

OllyDbg笔记1-crackme3

作者: 牵手生活 | 来源:发表于2022-03-17 16:32 被阅读0次

    crackeme3.exe部分注解

    image.png

    1:fun触发提示错误的

    00440EB0  /.  55            push ebp
    00440EB1  |.  8BEC          mov ebp,esp
    00440EB3  |.  6A 00         push 0x0
    00440EB5  |.  53            push ebx
    00440EB6  |.  8BD8          mov ebx,eax
    00440EB8  |.  33C0          xor eax,eax
    00440EBA  |.  55            push ebp
    00440EBB  |.  68 BA0F4400   push crackme3.00440FBA
    00440EC0  |.  64:FF30       push dword ptr fs:[eax]
    00440EC3  |.  64:8920       mov dword ptr fs:[eax],esp
    00440EC6  |.  8D55 FC       lea edx,[local.1]
    00440EC9  |.  8B83 C4020000 mov eax,dword ptr ds:[ebx+0x2C4]
    00440ECF  |.  E8 4CFFFDFF   call crackme3.00420E20
    00440ED4  |.  837D FC 00    cmp [local.1],0x0
    00440ED8  |.  75 18         jnz short crackme3.00440EF2
    00440EDA  |.  6A 00         push 0x0
    00440EDC  |.  B9 C80F4400   mov ecx,crackme3.00440FC8                ;  ASCII "No Name entered"
    00440EE1  |.  BA D80F4400   mov edx,crackme3.00440FD8                ;  ASCII "Enter a Name!"
    00440EE6  |.  A1 442C4400   mov eax,dword ptr ds:[0x442C44]
    00440EEB  |.  8B00          mov eax,dword ptr ds:[eax]
    00440EED  |.  E8 76C1FFFF   call crackme3.0043D068
    00440EF2  |>  8D55 FC       lea edx,[local.1]
    00440EF5  |.  8B83 C8020000 mov eax,dword ptr ds:[ebx+0x2C8]
    00440EFB  |.  E8 20FFFDFF   call crackme3.00420E20
    00440F00  |.  837D FC 00    cmp [local.1],0x0
    00440F04  |.  75 18         jnz short crackme3.00440F1E
    00440F06  |.  6A 00         push 0x0
    00440F08  |.  B9 E80F4400   mov ecx,crackme3.00440FE8                ;  ASCII "No Serial entered"
    00440F0D  |.  BA FC0F4400   mov edx,crackme3.00440FFC                ;  ASCII "Enter a Serial!"
    00440F12  |.  A1 442C4400   mov eax,dword ptr ds:[0x442C44]
    00440F17  |.  8B00          mov eax,dword ptr ds:[eax]
    00440F19  |.  E8 4AC1FFFF   call crackme3.0043D068
    00440F1E  |>  8D55 FC       lea edx,[local.1]
    00440F21  |.  8B83 C4020000 mov eax,dword ptr ds:[ebx+0x2C4]
    00440F27  |.  E8 F4FEFDFF   call crackme3.00420E20
    00440F2C  |.  8B45 FC       mov eax,[local.1]                        ;  把我们输入的内容送到EAX,我这里是“CCDebuger”
    00440F2F  |.  BA 14104400   mov edx,crackme3.00441014                ;  ASCII "Registered User"
    00440F34  |.  E8 F32BFCFF   call crackme3.00403B2C                   ;  fun-关键,要用F7跟进去-判断用户名与Registered User是否一致
    00440F39  |.  75 51         jnz short crackme3.00440F8C              ;  跳走,提示Wrong Serial;ry again
    00440F3B  |.  8D55 FC       lea edx,[local.1]
    00440F3E  |.  8B83 C8020000 mov eax,dword ptr ds:[ebx+0x2C8]
    00440F44  |.  E8 D7FEFDFF   call crackme3.00420E20
    00440F49  |.  8B45 FC       mov eax,[local.1]
    00440F4C  |.  BA 2C104400   mov edx,crackme3.0044102C                ;  ASCII "GFX-754-IER-954"
    00440F51  |.  E8 D62BFCFF   call crackme3.00403B2C                   ;  fun--同上用户名和系列号通用fun判断密码关键,要用F7跟进去
    00440F56  |.  75 1A         jnz short crackme3.00440F72              ;  跳走,提示Wrong Serial;ry again
    00440F58  |.  6A 00         push 0x0
    00440F5A  |.  B9 3C104400   mov ecx,crackme3.0044103C                ;  ASCII "CrackMe cracked successfully"
    00440F5F  |.  BA 5C104400   mov edx,crackme3.0044105C                ;  ASCII "Congrats! You cracked this CrackMe!"
    00440F64  |.  A1 442C4400   mov eax,dword ptr ds:[0x442C44]
    00440F69  |.  8B00          mov eax,dword ptr ds:[eax]
    00440F6B  |.  E8 F8C0FFFF   call crackme3.0043D068
    00440F70  |.  EB 32         jmp short crackme3.00440FA4
    00440F72  |>  6A 00         push 0x0
    00440F74  |.  B9 80104400   mov ecx,crackme3.00441080                ;  ASCII "Beggar off!"
    00440F79  |.  BA 8C104400   mov edx,crackme3.0044108C                ;  ASCII "Wrong Serial,try again!"
    00440F7E  |.  A1 442C4400   mov eax,dword ptr ds:[0x442C44]
    00440F83  |.  8B00          mov eax,dword ptr ds:[eax]
    00440F85  |.  E8 DEC0FFFF   call crackme3.0043D068                   ;  err-窗口
    00440F8A  |.  EB 18         jmp short crackme3.00440FA4
    00440F8C  |>  6A 00         push 0x0
    00440F8E  |.  B9 80104400   mov ecx,crackme3.00441080                ;  ASCII "Beggar off!"
    00440F93  |.  BA 8C104400   mov edx,crackme3.0044108C                ;  ASCII "Wrong Serial,try again!"
    00440F98  |.  A1 442C4400   mov eax,dword ptr ds:[0x442C44]
    00440F9D  |.  8B00          mov eax,dword ptr ds:[eax]
    00440F9F  |.  E8 C4C0FFFF   call crackme3.0043D068
    00440FA4  |>  33C0          xor eax,eax
    00440FA6  |.  5A            pop edx                                  ;  0019FA74
    00440FA7  |.  59            pop ecx                                  ;  0019FA74
    00440FA8  |.  59            pop ecx                                  ;  0019FA74
    00440FA9  |.  64:8910       mov dword ptr fs:[eax],edx               ;  crackme3.0044102C
    00440FAC  |.  68 C10F4400   push crackme3.00440FC1
    00440FB1  |>  8D45 FC       lea eax,[local.1]
    00440FB4  |.  E8 E727FCFF   call crackme3.004037A0
    00440FB9  \.  C3            retn
    
    
    
    image.png

    2:fun判断用户名、系列号同一个函数

    00403B2C  /$  53            push ebx                                 ;  fun入口判断注册用户 --Registered User”与输入用户
    00403B2D  |.  56            push esi
    00403B2E  |.  57            push edi
    00403B2F  |.  89C6          mov esi,eax                              ;  把EAX内我们输入的用户名送到 ESI
    00403B31  |.  89D7          mov edi,edx                              ;  把EDX内的数据“Registered User”送到EDI
    00403B33  |.  39D0          cmp eax,edx                              ;  用“Registered User”和我们输入的用户名作比较
    00403B35  |.  0F84 8F000000 je crackme3.00403BCA                     ;  相同则跳转
    00403B3B  |.  85F6          test esi,esi                             ;  看看ESI中输入的用户名是否有数据
    00403B3D  |.  74 68         je short crackme3.00403BA7               ;   用户名为空则跳
    00403B3F  |.  85FF          test edi,edi
    00403B41  |.  74 6B         je short crackme3.00403BAE
    00403B43  |.  8B46 FC       mov eax,dword ptr ds:[esi-0x4]           ;  用户名长度送EAX
    00403B46  |.  8B57 FC       mov edx,dword ptr ds:[edi-0x4]           ;  Registered User”字串的长度送EDX
    00403B49  |.  29D0          sub eax,edx                              ;  crackme3.0044102C
    00403B4B  |.  77 02         ja short crackme3.00403B4F               ;  用户名长度大于“Registered User”长度则跳
    00403B4D  |.  01C2          add edx,eax                              ;  把减后值与“Registered User”长度相加,即用户名长度
    00403B4F  |>  52            push edx                                 ;  crackme3.0044102C
    00403B50  |.  C1EA 02       shr edx,0x2                              ;  用户名长度值右移2位,这里相当于长度除以4
    00403B53  |.  74 26         je short crackme3.00403B7B               ;  上面的指令及这条指令就是判断用户名长度最少不能低于4
    00403B55  |>  8B0E          /mov ecx,dword ptr ds:[esi]              ;  ????把我们输入的用户名送到ECX
    00403B57  |.  8B1F          |mov ebx,dword ptr ds:[edi]
    00403B59  |.  39D9          |cmp ecx,ebx
    00403B5B  |.  75 58         |jnz short crackme3.00403BB5             ;  不等则完蛋
    00403B5D  |.  4A            |dec edx                                 ;  crackme3.0044102C
    00403B5E  |.  74 15         |je short crackme3.00403B75
    00403B60  |.  8B4E 04       |mov ecx,dword ptr ds:[esi+0x4]
    00403B63  |.  8B5F 04       |mov ebx,dword ptr ds:[edi+0x4]
    00403B66  |.  39D9          |cmp ecx,ebx
    00403B68  |.  75 4B         |jnz short crackme3.00403BB5
    00403B6A  |.  83C6 08       |add esi,0x8
    00403B6D  |.  83C7 08       |add edi,0x8
    00403B70  |.  4A            |dec edx                                 ;  crackme3.0044102C
    00403B71  |.^ 75 E2         \jnz short crackme3.00403B55
    00403B73  |.  EB 06         jmp short crackme3.00403B7B
    00403B75  |>  83C6 04       add esi,0x4
    00403B78  |.  83C7 04       add edi,0x4
    00403B7B  |>  5A            pop edx                                  ;  crackme3.00440F56
    00403B7C  |.  83E2 03       and edx,0x3
    00403B7F  |.  74 22         je short crackme3.00403BA3
    00403B81  |.  8B0E          mov ecx,dword ptr ds:[esi]               ;  crackme3.0043EB70
    00403B83  |.  8B1F          mov ebx,dword ptr ds:[edi]
    00403B85  |.  38D9          cmp cl,bl
    00403B87  |.  75 41         jnz short crackme3.00403BCA
    00403B89  |.  4A            dec edx                                  ;  crackme3.0044102C
    00403B8A  |.  74 17         je short crackme3.00403BA3
    00403B8C  |.  38FD          cmp ch,bh
    00403B8E  |.  75 3A         jnz short crackme3.00403BCA
    00403B90  |.  4A            dec edx                                  ;  crackme3.0044102C
    00403B91  |.  74 10         je short crackme3.00403BA3
    00403B93  |.  81E3 0000FF00 and ebx,0xFF0000
    00403B99  |.  81E1 0000FF00 and ecx,0xFF0000
    00403B9F  |.  39D9          cmp ecx,ebx
    00403BA1  |.  75 27         jnz short crackme3.00403BCA
    00403BA3  |>  01C0          add eax,eax
    00403BA5  |.  EB 23         jmp short crackme3.00403BCA
    00403BA7  |>  8B57 FC       mov edx,dword ptr ds:[edi-0x4]
    00403BAA  |.  29D0          sub eax,edx                              ;  crackme3.0044102C
    00403BAC  |.  EB 1C         jmp short crackme3.00403BCA
    00403BAE  |>  8B46 FC       mov eax,dword ptr ds:[esi-0x4]
    00403BB1  |.  29D0          sub eax,edx                              ;  crackme3.0044102C
    00403BB3  |.  EB 15         jmp short crackme3.00403BCA
    00403BB5  |>  5A            pop edx                                  ;  crackme3.00440F56
    00403BB6  |.  38D9          cmp cl,bl
    00403BB8  |.  75 10         jnz short crackme3.00403BCA
    00403BBA  |.  38FD          cmp ch,bh
    00403BBC  |.  75 0C         jnz short crackme3.00403BCA
    00403BBE  |.  C1E9 10       shr ecx,0x10
    00403BC1  |.  C1EB 10       shr ebx,0x10
    00403BC4  |.  38D9          cmp cl,bl
    00403BC6  |.  75 02         jnz short crackme3.00403BCA
    00403BC8  |.  38FD          cmp ch,bh
    00403BCA  |>  5F            pop edi                                  ;  crackme3.00440F56
    00403BCB  |.  5E            pop esi                                  ;  crackme3.00440F56
    00403BCC  |.  5B            pop ebx                                  ;  crackme3.00440F56
    00403BCD  \.  C3            retn
    
    
    

    3:正确结果

    用户:Registered User
    系列号:GFX-754-IER-954
    
    image.png

    相关文章

      网友评论

          本文标题:OllyDbg笔记1-crackme3

          本文链接:https://www.haomeiwen.com/subject/rbgvdrtx.html