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

  1.                        zerOOne's Crackme #4 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 #4
  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!
  37.  
  38.  - CRACKING STEPS: -
  39.  
  40. 1) Switch into softice and put a bpx on 'MessageBoxA', so we can break when
  41.    the program tells us that our serial is incorrect.
  42.  
  43.  
  44. 2) Goto the application and enter any serial you want, hit enter!
  45.  
  46.  
  47. 3) Bingo, we'll break right in this snippet:
  48.  
  49. :004010EF 55                      push ebp
  50. :004010F0 8BEC                    mov ebp, esp
  51. :004010F2 51                      push ecx
  52. :004010F3 C745FCF1FB0900          mov [ebp-04], 0009FBF1
  53. :004010FA E80BFFFFFF              call 0040100A
  54. :004010F0 E81AFFFFFF              call 0040100F             \
  55. :004010F5 25FF000000              and eax, 000000FF         |  our success depends on the result of the
  56. :00401072 85C0                    test eax, eax             |  call to 40100F, since eax is checked on return.
  57. :004010FC 7416                    je 00401123               /
  58.  
  59. ...
  60.  
  61. :00401122 FF15ACF24100            USER32!MessageBoxA
  62. :00401128 E8ECFEFFFF              call 00401005
  63. :0040112D 33C0                    xor eax, eax              ;  you break here, but since we want to start
  64.                                     tracing at the beggining of this call, set
  65.                                     a breakpoint on 4010EF (!)          
  66.  
  67.  
  68. 4) Repeat step 2, enter any serial you like and you'll break at the beggining, then trace into
  69.    the call to 40100F, you'll see:
  70.  
  71. :0040100F E93F000000              jmp 00401053                       ; jump to real beggining
  72.  
  73. ...
  74.  
  75. :00401053 55                      push ebp
  76. :00401054 8BEC                    mov ebp, esp
  77. :00401056 83EC0C                  sub esp, 0000000C
  78. :00401059 C745F400000000          mov [ebp-0C], 00000000
  79. :00401060 EB09                    jmp 0040106B
  80. :00401062 8B4DF4                  mov ecx, dword ptr [ebp-0C]         \
  81. :00401065 83C101                  add ecx, 00000001               |    
  82. :00401068 894DF4                  mov dword ptr [ebp-0C], ecx         |  this one is probably
  83. :0040106B 837DF464                cmp dword ptr [ebp-0C], 00000064    |  a loop to get us bored (?)
  84. :0040106F 7D09                    jge 0040107A                  |  but it's not important so i
  85. :00401071 C745FC01000000          mov [ebp-04], 00000001              |  didn't care about it....
  86. :00401078 EBE8                    jmp 00401062                        /
  87.  
  88. :0040107A 813DB8D1410041100400    cmp dword ptr [0041D1B8], 00041041  ; compares the dec value of our name
  89.                                       ; with 41041h, do a "? 41041" to get
  90.                                       ; the valid code (!)
  91.  
  92. :00401084 750D                    jne 00401093
  93. :0040107C C645FC01                mov [ebp-08], 01          / these are
  94. :00401080 C6058CD1410001          mov byte ptr [0041DB8C], 01 \ success
  95. :00401091 EB0B                    jmp 0040109E
  96. :00401093 C645F800                mov [ebp-08], 00           / these are
  97. :00401097 C605BCD1410000          mov byte ptr [0041D1BC], 00  \ failure
  98. :0040109E 8A45F8                  mov al, byte ptr [ebp-08]
  99. :004010A1 8BE5                    mov esp, ebp
  100. :004010A3 5D                      pop ebp
  101. :004010A4 C3                      ret
  102.  
  103.  
  104.  - FINAL NOTES: -
  105.  
  106.    Ok, from now on you can expect a lotta tuts from me (well at least that's what i hope)...
  107.  
  108.    Thx 2: E_Bliss for kinda 'forcing' me to write tuturials
  109.       tC for being such a nice friend with some nice crackmes
  110.       MisterE for showing me the way to go ;)
  111.           R!SC for being a frenzy cracker and to have cracked my #3
  112.           All the other dudes i don't remember right now...