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

  1.                        zerOOne's Crackme #2 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 #2
  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.  
  39.  - CRACKING STEPS: -
  40.  
  41. 1) Switch into softice and put a bpx on 'MessageBoxA', so we can break when
  42.    the program tells us that our serial is incorrect.
  43.  
  44.  
  45. 2) Goto the application and enter any serial you want, hit enter!
  46.  
  47.  
  48. 3) Bingo, we'll break right in this snippet:
  49.  
  50. :0040105D 55                      push ebp
  51. :0040105E 8BEC                    mov ebp, esp
  52. :00401060 51                      push ecx
  53. :00401061 C745FCF1FB0900          mov [ebp-04], 0009FBF1
  54. :00401068 E893FFFFFF              call 00401000              \
  55. :0040106D 25FF000000              and eax, 000000FF          |  our success depends on the result of the
  56. :00401072 85C0                    test eax, eax              |  call to 401000, since eax is checked on return.
  57. :00401074 7416                    je 0040108C                /
  58.  
  59. ...
  60.  
  61. :0040109A FF15ACF24100            Call USER32!MessageBoxA
  62. :004010A0 33C0                    xor eax, eax                   ;  you break here, but since we want to start
  63.                                      tracing at the beggining of this call, set
  64.                                      a breakpoint on 40105D (!)
  65.  
  66.  
  67. 4) Repeat step 2, enter any serial you like and you'll break at the beggining:
  68.  
  69. :0040105D 55                      push ebp
  70. :0040105E 8BEC                    mov ebp, esp
  71. :00401060 51                      push ecx
  72. :00401061 C745FCF1FB0900          mov [ebp-04], 0009FBF1
  73. :00401068 E893FFFFFF              call 00401000                 ; trace (F8) into this call.
  74. :0040106D 25FF000000              and eax, 000000FF
  75. :00401072 85C0                    test eax, eax
  76. :00401074 7416                    je 0040108C            ; if eax is 0, bad code entered.
  77.  
  78.  
  79. 5) When we land at 401000, we'll see this snippet:
  80.  
  81. :00401000 E91B000000              jmp 00401020                  ; jumps to the beggining of the call
  82.  
  83. ...
  84.  
  85. :00401020 55                      push ebp
  86. :00401021 8BEC                    mov ebp, esp
  87. :00401023 83EC08                  sub esp, 00000008
  88.  
  89. :00401026 68509D4100              push 00419D50            ; "Bitte Registration code eingeben: "
  90. :0040102B B9A8D14100              mov ecx, 0041D1A8
  91. :00401030 E8FB040000              call 00401530            
  92. :00401035 8D45F8                  lea eax, dword ptr [ebp-08]
  93. :00401038 50                      push eax
  94. :00401039 B958D14100              mov ecx, 0041D158
  95.  
  96. :0040103E E88D000000              call 004010D0                  ; asks for reg code, converts it to dec
  97. :00401043 817DF86AD76300          cmp dword ptr [ebp-08], 0063D76A    ; value and stores in ebp-8, compares it
  98.                                       ; with 63D76Ah, so "? 63D76A" will reveal
  99.                                       ;    the correct code... (!)
  100.  
  101. :0040104A 7506                    jne 00401052
  102. :0040104C C645FC01                mov [ebp-04], 01              ; code correct
  103. :00401050 EB04                    jmp 00401056
  104. :00401052 C645FC00                mov [ebp-04], 00              ; code incorrect
  105. :00401056 8A45FC                  mov al, byte ptr [ebp-04]
  106. :00401059 8BE5                    mov esp, ebp
  107. :0040105B 5D                      pop ebp
  108. :0040105C C3                      ret
  109.  
  110.  
  111.  
  112.  - FINAL NOTES: -
  113.  
  114.    Ok, from now on you can expect a lotta tuts from me (well at least that's what i hope)...
  115.  
  116.    Thx 2: E_Bliss for kinda 'forcing' me to write tuturials
  117.       tC for being such a nice friend with some nice crackmes
  118.       MisterE for showing me the way to go ;)
  119.           R!SC for being a frenzy cracker and to have cracked my #3
  120.           All the other dudes i don't remember right now...