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

  1.             Terminal Cilla's
  2.                   Tutorial#5
  3.  
  4. [Target Infos:]
  5. [Name  :] CrackMe 5 
  6. [Author:] FireWorX
  7. [Type  :] RegCode
  8. [Where :] http://crackmes.cjb.net
  9.  
  10. [Needed Tools:]
  11. SoftIce
  12.  
  13. [Our Aim:]
  14. Find the RegCode
  15.  
  16. -----------------------------------------------------------------------------
  17.             Hi Reader. 
  18. I'm sorry for all grammatical and orthographic errors.
  19. Today we deal with "CrackMe 5" by 'FireWorX'.
  20. I assume that you already configured your SoftIce and
  21. that you are basicly down with SI - otherwise stop reading
  22. and take a "SoftIce4Newbies - Tutorial".
  23.               Still here?
  24.              Ok, let's go!
  25. Step1:
  26. ------
  27.     What's the first thing we realized at this crackme?   
  28.     Of course, we don't have a "ok-or check-button".
  29.     So what does that mean?
  30.     The program will check every single input.
  31.     Ok let's enter a value:
  32.     I used:
  33.  
  34.     Test-990088
  35.  
  36.     Hmm, nothing happen!
  37.  
  38. Step2:
  39. ------
  40.     Let's hunt our wanted regcode with SoftIce.
  41.     Set a breakpoint on 'hmemcpy' and press
  42.     <F5> to return to the program.
  43.     But what's going on now, we don't return!
  44.     Pressin' <F5> again and again and we are still
  45.     in SoftIce.
  46.     Ok, let's think a bit.
  47.     The fact that we are still break on 'hmemcpy'
  48.     could be that there's a permanent memory-access.
  49.     And what did we also saw while pressin' <F5>?
  50.     Yes, we were always at the same position.
  51.     Seein' all this we must be in a big loop!
  52.     Since we don't have an endless-loop;) there
  53.     must be an end-condition.
  54.     Our loop could be like this:
  55.  
  56.     ********************************
  57.     repeat
  58.      If 'input<>Serial' then
  59.       'condition'=false else
  60.       'condition'=true;
  61.     until 'condition'=true;
  62.     ********************************
  63.  
  64.     So, let's go on with SoftIce:
  65.  
  66.     1  * F11
  67.     11 * F12
  68. -----------------------------------------------------------------------
  69. Step3: (writing down our serial;)
  70. ------
  71. :00441A0E 8B45FC             mov eax, dword ptr [ebp-04]->we are here;
  72. :00441A11 50                 push eax                   ->our code in eax;
  73. :00441A12 8D55F8             lea edx, dword ptr [ebp-08]
  74. :00441A15 8B83C8020000       mov eax, dword ptr [ebx+000002C8]
  75. :00441A1B E8A417FEFF         call 004231C4
  76. :00441A20 8B55F8             mov edx, dword ptr [ebp-08]->!;
  77. :00441A23 58                 pop eax
  78. :00441A24 E83321FCFF         call 00403B5C->compare routine;
  79. :00441A29 7549               jne 00441A74 ->if 'our code<>real code'
  80.                         then goto loop;
  81.  
  82.     Controlling the eax-register will show us our serial. 
  83.     Tracin' further will bring us to :00441A20 were 'edx' 
  84.     get the value 'RegCode' - isn't it the label above the input-box?
  85.     At :00441A29 is a conditional-jump. Here is a decision wether you
  86.     have won or lost. Before that jump there's a call - 
  87.     let's examine him.
  88.  
  89.     Pressin' <F8> while we are on the call will bring us here:
  90.  
  91. ------------------------------------------------------
  92. :00403B5C 53                      push ebx
  93. :00403B5D 56                      push esi
  94. :00403B5E 57                      push edi
  95. :00403B5F 89C6                    mov esi, eax
  96. :00403B61 89D7                    mov edi, edx
  97. :00403B63 39D0                    cmp eax, edx ->!
  98.  
  99.     Something is compared at :00403B63 - let's see what.
  100.     In 'eax' is our dummy code stored and what do we got
  101.     in 'edx'? Hmm, once again it's 'Regcode'.
  102.     Hey, maybe FireWorX tryed to trick us with
  103.     that CrackMe.
  104.     In order to prove our assumption, we enter
  105.     'Regcode' and *boom* a "cracked"-msg appears.
  106.  
  107.  
  108.     Well, our job is done!
  109.  
  110.     Thx4Readin'
  111. -----------------------------------------------------------------------------
  112.  
  113.         -=I'm still a newbie - So I can only get better!=-
  114.  
  115. (c) Terminal Cilla (april 1999)
  116.     
  117.  
  118. Peace&Respects 2: FireWorX, Eternal_Bliss, The_Sandman, Torn@do,
  119.           duelist, Sanhedrin and all crackme-coders
  120.           and tutorial-writers.
  121.                       ________________________
  122.              |   Be sure to visit:    |
  123.              | http://crackmez.cjb.net|
  124.              |           &              |
  125.                  | http://crackmes.cjb.net|
  126.                      |________________________|
  127.