home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / E_bliss / zone-cm3.txt < prev    next >
Text File  |  2000-05-25  |  5KB  |  111 lines

  1.                        zerOOne's Crackme #3 Tuturial 
  2.  
  3.                   ░               
  4.           ░       ░      ░                                  ▄▓
  5.     ▄▄     ░░     ▄▄▄▄■  ░░▀   ■▄▄▄         ▄▄             ▐█▓▌  
  6.  ▄▀▀  ▀■      ▀        ░░            ▀    ■▀  ▀▀▄           ██▌
  7. ■        ▄▄▀▀ ▄▄██▀██▄▄       ▄▄▄███▄▄ ▀▄▄       ■  ▄▄▄███▄▄▐██     ▄▄████▄▄
  8.  ▀▄▄  ▄▀▀   ▄███▀   ▀██▓▄   ▄████▀ ▀██▓▄  ▀▄  ▄▄▀ ▄████▀ ▀██▓██   ▄████▀ ▀██▓▄
  9.     ▀▀  ▄  ▐███▌  ░  ▐██▓▌ ▐████▌ ░ ▐██▓▌ ▄ ▀▀   ▐████▌ ░ ▐████▌ ▐████▌   ▐██▓▌
  10.  ■██▄▄▓▌   ████  ░▒░  ████ █████▄▄▄  ▀▀▀▀ ▐█▄▄█▓ █████  ░  █████ █████▄▄▀▀▀▀▀▀▀
  11.   ▐████ ░░ ▓██▌ ░▒▓▒░ ▐███ ▄▄▄▄▄  ▀▀▀████▄ ████▌ ▓███▌     ▐████ ▓███▌   ░░░░░░
  12. ░  ███▌ ░ ▐▓███ ░▒▓▒░ ▓███▌▓███▌ ░░░ ▐████ ▐▓██  ▓███▌ ▄▀▀ ▐████ ▓███▌ ░░░░░░░
  13.    ▓██▌   ▐▓███  ░▒░  ▓███▌▐▓███  ░  ▓███▌ ▐▓██  ▐▓███     ▓███▌ ▐▓███    
  14.   ▐▓███   ▐▓▓██▌  ░  ▐▓███▌ ▓▓██▌   ▐▓███  ▓███▌  ▓▓██▌ ░ ▐▓███   ▓▓██▌   
  15.   ▓▓▓██▌ ■▓▓▓▓██  ░  ▓█████■ ▀▓▓█▄ ▄▓██▀  ▐▓████ ▄ ▀▓██▄ ▄▓██▀     ▀▓██▄  
  16.    ▀▓███▄   ▀▀▀██▄  ▄▓█▀▀▀      ▀▀█▀▀    ▄▓▓▓▀▀       ▀▀█▀▀           ▀▀▀▀ js
  17.        ▀▀▀▀▀▄▄           ░ iNSiDE   ▄▄▀▀▀▀▀ 
  18.           ░   ▀▄  ░     ░░        ▄▀
  19.          ░░       ░      ░░ 
  20.  
  21. Tutor      : duelist
  22. Data Wrote : June 12, 1999
  23. Who        : Newbies
  24. Target     : zerOOne's Crackme #3
  25. Size       : 116kb
  26. Tools Used : SoftIce
  27.  
  28.  
  29.  - INTRODUCTION: -
  30.  
  31. Ok people i'm back to the tuts scene and i hope both me and you will enjoy
  32. my stay. First of all, notice the size of this app, 116kb, that's way too
  33. much for a dos app! I loaded it using windows quikview and then i saw that
  34. it had tons of imports. Since i had cracked zerOOne's Crackme #1, i knew
  35. that this was a Win32 console mode program and that our result will be
  36. indicated by a messagebox! (btw i would like to tell that this one uses the
  37. same code that the #2 did)
  38.  
  39.  
  40.  - CRACKING STEPS: -
  41.  
  42. 1) Switch into softice and put a bpx on 'MessageBoxA', so we can break when
  43.    the program tells us that our serial is incorrect.
  44.  
  45.  
  46. 2) Goto the application and enter any serial you want, hit enter!
  47.  
  48.  
  49. 3) Bingo, we'll break right in this snippet:
  50.  
  51. :004010E5 55                      push ebp
  52. :004010E6 8BEC                    mov ebp, esp
  53. :004010E8 51                      push ecx
  54. :004010E9 C745FCF1FB0900          mov [ebp-04], 0009FBF1
  55. :004010F0 E81AFFFFFF              call 0040100F             \
  56. :004010F5 25FF000000              and eax, 000000FF         |  our success depends on the result of the
  57. :00401072 85C0                    test eax, eax             |  call to 40100F, since eax is checked on return.
  58. :004010FC 7416                    je 00401114               /
  59.  
  60. ...
  61.  
  62. :00401122 FF15ACF24100            USER32!MessageBoxA
  63. :00401128 E8ECFEFFFF              call 00401019
  64. :0040112D 33C0                    xor eax, eax              ;  you break here, but since we want to start
  65.                                     tracing at the beggining of this call, set
  66.                                     a breakpoint on 4010E5 (!)          
  67.  
  68.  
  69. 4) Repeat step 2, enter any serial you like and you'll break at the beggining, then trace into
  70.    the call to 40100F, you'll see:
  71.  
  72.  
  73. :0040100F E93C000000              jmp 00401050            ; jumps to the beggining of the call
  74.  
  75. ...
  76.  
  77. :00401050 55                      push ebp
  78. :00401051 8BEC                    mov ebp, esp
  79. :00401053 83EC08                  sub esp, 00000008
  80. :00401056 6818C84100              push 0041C818            ; "Bitte Registration code eingeben: "
  81. :0040105B B9E0D14100              mov ecx, 0041D1E0
  82. :00401060 E80B060000              call 00401670
  83. :00401065 8D45F8                  lea eax, dword ptr [ebp-08]
  84. :00401068 50                      push eax
  85. :00401069 B990D14100              mov ecx, 0041D190 
  86.  
  87. :0040106E E89D010000              call 00401210                      / gets our code, converts it to dec
  88. :00401073 817DF86AD76300          cmp dword ptr [ebp-08], 0063D76A   | and stores in ebp-8. Do a "? 63D76A"
  89.                                      \ and you'll get the right code!
  90.  
  91. :0040107A 750D                    jne 00401089
  92. :0040107C C645FC01                mov [ebp-04], 01          / these are
  93. :00401080 C6058CD1410001          mov byte ptr [0041D18C], 01 \ success
  94. :00401087 EB0B                    jmp 00401094
  95. :00401089 C645FC00                mov [ebp-04], 00
  96. :0040108D C6058CD1410000          mov byte ptr [0041D18C], 00 / these are
  97. :00401094 8A45FC                  mov al, byte ptr [ebp-04]   \ failure
  98. :00401097 8BE5                    mov esp, ebp
  99. :00401099 5D                      pop ebp
  100. :0040109A C3                      ret
  101.  
  102.  
  103.  - FINAL NOTES: -
  104.  
  105.    Ok, from now on you can expect a lotta tuts from me (well at least that's what i hope)...
  106.  
  107.    Thx 2: E_Bliss for kinda 'forcing' me to write tuturials
  108.       tC for being such a nice friend with some nice crackmes
  109.       MisterE for showing me the way to go ;)
  110.           R!SC for being a frenzy cracker and to have cracked my #3
  111.           All the other dudes i don't remember right now...