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

  1.             Tutorial Number 7
  2.  
  3. Written by Etenal Bliss
  4. Email: Eternal_Bliss@hotmail.com
  5. Website:http://crackmes.cjb.net
  6.         http://surf.to/crackmes
  7. Date written:7th Feb 1999
  8.  
  9. Program Details:
  10. Name: CrackMe v8.01
  11. Author: BuLLeT/CiA
  12.  
  13. Tools Used:
  14. Softice
  15.  
  16. Cracking Method:
  17. Observation, Hex-Dec interconversion, simple maths
  18.  
  19. Viewing Method:
  20. Use Notepad with Word Wrap switched on
  21. Screen Area set to 800 X 600 pixels (Optional)
  22.  
  23. __________________________________________________________________________
  24.  
  25.  
  26.                         About this protection system
  27.  
  28. No disabled function. Protection is based on a serial number which is
  29. converted to Hex after a simple multiplication. You get 8 tries everytime
  30. you run the program. If you fail to register, it will exit after the 8th
  31. try.
  32.  
  33. __________________________________________________________________________
  34.  
  35.  
  36.                                  The Essay
  37.  
  38. As this is a tutorial for newbies, I'll go into details about how I go 
  39. about cracking the program. I suggest that you read this tutorial first.
  40. When you have completed the tutorial, leave this tutorial open and follow
  41. the instructions. Re-do it once more after you have completed the step 
  42. by step guide...
  43.  
  44. In this essay, when I write type "d edx" or similar commands in Softice,
  45. I mean it without the quotes.
  46.  
  47. __________________________________________________________________________
  48.  
  49.  
  50.                 Observation
  51.  
  52.  
  53. I entered "1" without quote in the serial box and click on "Spider". The
  54. "Reg Nr" generated is 000003. Entering 2 will give you 000006. Entering
  55. 11 will give you 21.
  56.  
  57. Explanation: 
  58. The serial you entered is multiplied by 3 and then the answer is converted
  59. to Hex. Eg. 11 * 3 = 33 (33 is 21 in Hex)
  60.  
  61. Ok, I've found out how the Reg Nr is generated. Next, we need to find out
  62. what is the correct Reg Nr.
  63.  
  64.  
  65. I entered 1 for the serial.
  66.  
  67. Ctrl D to activate Softice. We will need to set a breakpoint to break into
  68. the program. I chose to use hmemcpy (so type "bpx hmemcpy")
  69.  
  70. Then you will need to click on "Spider". You will break into the function.
  71. To get to the main program code, You have to F12 7 times.
  72.  
  73. **There is no explanation for the number of F12. I just counted that I needed
  74.   7 F12s to see CRACKME!CODE... which means that you are in the main program
  75.   code.
  76.  
  77. Once you are in the code, you will have to disable the breakpoint first
  78. by typing "bd *"
  79.  
  80. Then, just keep using F10 for a while because what you will come across
  81. is a lot of "ret"(total of 6) and nothing interesting until
  82.  
  83.  
  84. :0044A2F4  E813A1FDFF          CALL    0042440C
  85. :0044A2F9  8B45FC              MOV     EAX,[EBP-04]    <-- You land here
  86. :0044A2FC  E807D7FBFF          CALL    00407A08
  87. :0044A301  8BF0                MOV     ESI,EAX
  88. :0044A303  8B45FC              MOV     EAX,[EBP-04]
  89.  
  90.             __________Snip___________
  91.  
  92.  
  93. :0044A35B  8B83E8020000        MOV     EAX,[EBX+000002E8]
  94. :0044A361  E8A6A0FDFF          CALL    0042440C    <-- F10 pass this call
  95. :0044A366  8B55F0              MOV     EDX,[EBP-10] and type "d edx"
  96. :0044A369  58                  POP     EAX
  97. :0044A36A  E87998FBFF          CALL    00403BE8    <-- Call to compare
  98. :0044A36F  750F                JNZ     0044A380                    
  99.  
  100. At 0044A361, if you F10 pass it, you will notice the edx register changing
  101. colour which means that it has a new value. Type "d edx" to see what is in
  102. the edx register. I got 11DA9558E. The next line moves the value 11DA9558E
  103. in edx again.
  104.  
  105. At line 0044A36A, there is another call. Notice the conditional jump after
  106. it. That's highly suspicious. So, I traced into the call using F8 when the
  107. line lights up in the code window.
  108.  
  109. :00403BE8  53                  PUSH    EBX
  110. :00403BE9  56                  PUSH    ESI
  111. :00403BEA  57                  PUSH    EDI
  112. :00403BEB  89C6                MOV     ESI,EAX    <-- eax = your code
  113. :00403BED  89D7                MOV     EDI,EDX    <-- edx = correct code
  114. :00403BEF  39D0                CMP     EAX,EDX    <-- COMPARE eax with edx
  115. :00403BF1  0F848F000000        JZ      00403C86     (NO JUMP)
  116.  
  117. Look at this part of the code, you will notice the compare at 00403BEF.
  118. Again followed by the classical conditional jump. You must remember that
  119. we entered the wrong code so eax is different from edx.
  120.  
  121. If we entered the correct code, we would be jumping to 00403C86. To confirm
  122. this, at 00403BF1, type "r fl z" to reverse the zero flag. You will see
  123. that you will now jump. Press F5 to return to the program...
  124.  
  125. And you will see the Prize Trophy!!!
  126.  
  127. Ok. So, we know that edx contains the real code, eax contains the converted
  128. code we entered. I entered 1 at the start and eax = 000003 (see above if
  129. you have been skipping through this tutorial)
  130.  
  131. Now, we need to convert 11DA9558E into the correct serial that we need to
  132. enter.
  133.  
  134. Formula:
  135. (what you type) * 3 and converted to Hex.
  136.  
  137. **note: If you don't understand this, most probably you have been skipping
  138.   through the tutorial. Go back and READ!
  139.  
  140. Now we need to reverse the calculation to get the serial
  141.  
  142. **I recommend Volatility's CrackersConvert v1.0 which can be found in
  143.   http://www.ImmortalDescendants.com
  144.  
  145. 11DA9558E (Hex) when converted to Dec = 4792604046
  146. 4792604046 divide by 3 = 1597534682
  147.  
  148. Now, type 1597534682 into the serial box. Did you see the Prize Trophy????
  149.  
  150. Program Cracked...
  151.  
  152. __________________________________________________________________________
  153.  
  154.  
  155.                 Afterthought
  156.  
  157. You might be thinking how I manage to find the exact location of the 
  158. compare. The answer is that I did it the hard way. Upon breaking in 
  159. Softice using bpx hmemcpy, I traced into almost all calls till I got to
  160. the correct one. 
  161.  
  162. That is the wrong way of cracking. You must not "dive" straight into the
  163. program once Softice breaks.
  164.  
  165. If I had more patience and just F10 my way around, I would have come to 
  166. the compare code much faster.
  167.  
  168. Remember that.
  169.  
  170.  
  171. __________________________________________________________________________
  172.  
  173.                 
  174.                              Final Notes
  175.  
  176. This tutorial is dedicated to all the newbies like me. I've tried to
  177. explain everything in details.
  178.  
  179. And because I'm a newbie myself, I may have explained certain things wrongly
  180. So, if that is the case, please forgive me. Email me if there is anything 
  181. you are not clear about.
  182.  
  183.  
  184. My thanks and gratitude goes to:-
  185.  
  186. The Sandman
  187. All the writers of Cracks tutorials and CrackMes