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

  1.                       Brad Soblesky 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 : April 6, 1999
  23. Who        : Begginers
  24. Target     : Brad Soblesky Crackme #1
  25. Size       : 20kb (!)
  26. Tools Used : SoftIce
  27. Method     : Code Sniffing
  28.  
  29.  
  30.                 -=* Protection *=-
  31.  
  32. Well this crackme is a VERY simple one, and requires only a password, which
  33. normally (if not always) means that it is hardcoded in the program!
  34.  
  35.  
  36.                -=* Our Aproach *=-
  37.  
  38. Using softice, this should be an EASY work! Knowing that this app uses MFC, i will
  39. start with one of the most basic bpx for this type of crackmes written with MFC.
  40.  
  41. 1) Switch to softice (Control + D) and "bpx lstrlen" (you SHOULD break a little 
  42.    before the point were the app compares your code with the correct one)
  43.  
  44. 2) Enter any code you want and press Check, then hit F12 to go back to program code:
  45.  
  46.    .0000155F: 50                           push      eax                          ; your fake code
  47.    .00001560: FF1504204000                 call      [KERNEL32!lstrlen]
  48. -> .00001566: 8945F0                       mov       [ebp-10],eax
  49.    .00001569: 837DF001                     cmp       dword ptr [ebp-10],01        ; is code >= 1 char length?
  50. /- .0000156D: 7316                         jae      .000001585              ; if yes, jump to the compare routine
  51. |  .0000156F: 6A40                         push      040                   \
  52. |  .00001571: 682C304000                   push      00040302C             | 
  53. |  .00001576: 6834304000                   push      000403034             |   Opsss, no code was entered,  
  54. |  .0000157B: 8B4DE0                       mov       ecx,[ebp-20]          |   showing an error message!
  55. |  .0000157E: E87B050000                   call     .000001AFE             | 
  56. |  .00001583: EB3C                         jmps     .0000015C1             /
  57. \- .00001585: 8D4DE4                       lea       ecx,[ebp-1C]
  58.    .00001588: 51                           push      ecx                      ; REAL code being push'ed
  59.    .00001589: 8D55F4                       lea       edx,[ebp-0C]
  60.    .0000158C: 52                           push      edx                  ; your FAKode being push'ed
  61.    .0000158D: FF1500204000                 call      [KERNEL32!lstrcmp]           ;stop here and do a "d ecx"... Bingo!
  62.    .00001593: 85C0                         test      eax, eax                     ; compare codes...
  63.  
  64. 3) Did you understand? Stop at  lstrcmpA call and do 'd ecx' and you get the real code, which is <BrD-SoB> ... Cheers!
  65.  
  66.  
  67.                   -=* Final Notes *=-
  68.  
  69. This was a simple tuturial that should help you when dealing with MFC applications that have
  70. an hardcoded password (and sometimes not).