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

  1.                        zerOOne's Crackme #1 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 #1
  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, and zer00ne's said in his intro file:
  35.  
  36. "Es sieht zwar aus wie ein Dos proggi ist aber ein Win32 proggi. Also
  37.  benutzt es auch MessageBoxen ;)"
  38.  
  39. Well i'm not german but i can understand that this is a Win32 console mode
  40. program and that our result will be indicated by a messagebox!
  41.  
  42.  
  43.  
  44.  - PROTECTION: -
  45.  
  46. This program accepts only one password, so as a tip, we can expect it is
  47. hardcoded in the program (later we'll see that it is not that easy) and
  48. it will inform us of the result by a messagebox!
  49.  
  50.  
  51.  - CRACKING STEPS: -
  52.  
  53. 1) Switch into softice and put a bpx on 'MessageBoxA', so we can break when
  54.    the program tells us that our serial is incorrect.
  55.  
  56.  
  57. 2) Goto the application and enter any serial you want, hit enter!
  58.  
  59.  
  60. 3) Bingo, we'll break right in this snippet:
  61.  
  62. :00401010 55                      push ebp
  63. :00401011 8BEC                    mov ebp, esp
  64. :00401013 83EC08                  sub esp, 00000008
  65. :00401016 C745FCF1FB0900          mov [ebp-04], 0009FBF1
  66. :0040101D 68509D4100              push 00419D50             ; "Bitte Registration code eingeben: "
  67. :00401022 B9A8D14100              mov ecx, 0041D1A8
  68. :00401027 E8C4040000              call 004014F0
  69. :0040102C 8D45F8                  lea eax, dword ptr [ebp-08]
  70. :0040102F 50                      push eax
  71. :00401030 B958D14100              mov ecx, 0041D158
  72. :00401035 E856000000              call 00401090
  73. :0040103A 8B4DF8                  mov ecx, dword ptr [ebp-08]
  74. :0040103D 3B4DFC                  cmp ecx, dword ptr [ebp-04]
  75. :00401040 7516                    jne 00401058
  76. :00401042 6A00                    push 00000000
  77. :00401044 68749D4100              push 00419D74            ; "Danke"
  78. :00401049 687C9D4100              push 00419D7C            ; "Sie haben mich gecrackt :)"
  79. :0040104E 6A00                    push 00000000
  80. :00401050 FF15ACF24100            Call USER32!MessageBoxA
  81. :00401056 EB14                    jmp 0040106C
  82. :00401058 6A01                    push 00000001            ; "Error"
  83. :0040105A 68989D4100              push 00419D98
  84. :0040105F 68A09D4100              push 00419DA0            ; "Nein, versuchen Sie es nochmal :("
  85. :00401064 6A00                    push 00000000
  86. :00401066 FF15ACF24100            Call USER32!MessageBoxA       
  87. :0040106C 33C0                    xor eax, eax             <- you break here, but since we want to start
  88.                                     tracing at the beggining of this call, set
  89.                                     a breakpoint on 401010
  90.  
  91.  
  92. 4) Repeat step 2, enter any serial you like and you'll break at the beggining of the call
  93.    this time:
  94.  
  95. :00401010 55                      push ebp
  96. :00401011 8BEC                    mov ebp, esp
  97. :00401013 83EC08                  sub esp, 00000008
  98. :00401016 C745FCF1FB0900          mov [ebp-04], 0009FBF1
  99. :0040101D 68509D4100              push 00419D50             ; "Bitte Registration code eingeben: "
  100. :00401022 B9A8D14100              mov ecx, 0041D1A8
  101. :00401027 E8C4040000              call 004014F0
  102. :0040102C 8D45F8                  lea eax, dword ptr [ebp-08]
  103. :0040102F 50                      push eax
  104. :00401030 B958D14100              mov ecx, 0041D158
  105. :00401035 E856000000              call 00401090                 <- asks us for the reg code AND converts
  106. :0040103A 8B4DF8                  mov ecx, dword ptr [ebp-08]      it from string to dec, stores in ecx
  107.  
  108. :0040103D 3B4DFC                  cmp ecx, dword ptr [ebp-04]   ; compares our code with some dec at location
  109.                                   ebp-4 (!), so do a "d ebp-4" and you'll get
  110.                                   "F1 FB 09 00", just reverse it and use a
  111.                                    "? 09FBF1" and you'll get the correct code!
  112.  
  113.  
  114.  - FINAL NOTES: -
  115.  
  116.    Ok, from now on you can expect a lotta tuts from me (well at least that's what i hope)...
  117.  
  118.    Thx 2: E_Bliss for kinda 'forcing' me to write tuturials
  119.       tC for being such a nice friend with some nice crackmes
  120.       MisterE for showing me the way to go ;)
  121.           R!SC for being a frenzy cracker and to have cracked my #3
  122.           All the other dudes i don't remember right now...