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

  1.             Tutorial Number 19
  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: 9th Apr 1999
  8.  
  9. Program Details:
  10. Name: CrackMe 3
  11. Author: MiZ
  12. Language: Visual Basic
  13.  
  14. Tools Used:
  15. SoftIce
  16.  
  17. Cracking Method:
  18. Code sniffing
  19.  
  20. Viewing Method:
  21. Use Notepad with Word Wrap switched on
  22. Screen Area set to 800 X 600 pixels (Optional)
  23.  
  24. __________________________________________________________________________
  25.  
  26.  
  27.                         About this protection system
  28.  
  29. Protection is based on a code which is calculated from the Name you enter.
  30. There is anti-SmartCheck routine which will stop SmartCheck usage.
  31.  
  32.  
  33. __________________________________________________________________________
  34.  
  35.  
  36.                                The Essay
  37.  
  38. In this essay, when I write type "d edx" or similar commands in Softice,
  39. I mean it without the quotes. 
  40.  
  41. _________________________________________________________________________
  42.  
  43.  
  44.                 Softice
  45.  
  46. Since there is anti-SmartCheck routine, we will try to use Softice only.
  47. As this is a Visual Basic CrackMe, we will use the two common breakpoints
  48. first.
  49.  
  50. Run the CrackMe, type in "Eternal Bliss" for the Name and "123456" for the
  51. Code.
  52.  
  53. Set the two breakpoints as below:
  54. 1) bpx __vbastrcomp
  55. 2) bpx __vbavartsteq
  56.  
  57. Click on the "Check" picture.
  58.  
  59. You will break into Softice with __vbastrcomp. Disable the breakpoints now.
  60.  
  61. Before you go on, I'd have to say that I've listed out only some parts 
  62. for easy reference. There are a few conditional jumps around but 
  63. just follow the jumps.
  64. What you need to do is to F10 your way around until the call at :7B2F35A6
  65. Then trace into it.
  66.  
  67. **This is a very common place for visual basic programs. So, if you have cracked
  68.   enough VB programs, you will more or less recognise the codes.
  69.  
  70. Break due to BPX MSVBVM50!__vbaStrComp  (ET=1.26 seconds)
  71. MSVBVM50!__vbaStrComp
  72. :7B2F3564  8BEC                MOV     EBP,ESP
  73. :7B2F3566  53                  PUSH    EBX
  74. :7B2F3567  56                  PUSH    ESI
  75. :7B2F3568  57                  PUSH    EDI
  76. :            __________Snip___________
  77. :
  78. :7B2F359F  50                  PUSH    EAX
  79. :7B2F35A0  FF750C              PUSH    DWORD PTR [EBP+0C]
  80. :7B2F35A3  FF7510              PUSH    DWORD PTR [EBP+10]
  81. :7B2F35A6  E83FA40000          CALL    7B2FD9EA
  82. **Go into this call using F8
  83.  
  84. ==========================================================================
  85. :7B2FD9EA  56                  PUSH    ESI
  86. :7B2FD9EB  57                  PUSH    EDI
  87. :7B2FD9EC  8B7C2410            MOV     EDI,[ESP+10]
  88.  
  89. After this line, you will notice edi having a new value. 
  90. Type "d edi" and you will see something like this in your data window.
  91.  
  92. :00411B50 75 00 36 00 2D 00 33 00-31 00 7D 00 20 00 3C 00  u.6.-.3.1.}. .<.
  93. :00411B60 2C 00 41 00 2C 00 35 00-30 00 00 00 29 00 00 A0  ,.A.,.5.0...)...
  94.  
  95. F10 one more line so that :7B2FD9F0 has been processed.
  96. :7B2FD9F0  8B74240C            MOV     ESI,[ESP+0C]
  97.  
  98. You will see esi having a new value as well.
  99. Type "d esi" and see what is in esi.
  100.  
  101. :00411AAC 31 00 32 00 33 00 34 00-35 00 36 00 00 00 20 00  1.2.3.4.5.6... .
  102.  
  103. Does 1.2.3.4.5.6 look familiar to you? Because this is visual basic, things
  104. get "bigger" using w.i.d.e. .c.h.a.r.a.c.t.e.r format. So, in fact, esi 
  105. contains the code you entered. So, what do you think is in edi? 8)
  106.  
  107. Ok, I know the problem. So what if I can see the value in edi. 
  108. Where do the correct code stop?
  109.  
  110. Take the hex values of edi and see...
  111.  
  112. 75 00 36 00 2D 00 33 00-31 00 7D 00 20 00 3C 00  u.6.-.3.1.}. .<.
  113.    ^^    ^^    ^^    ^^    ^^    ^^    ^^    ^^
  114. 2C 00 41 00 2C 00 35 00-30 00 00 00 29 00 00 A0  ,.A.,.5.0...)...
  115.    ^^    ^^    ^^    ^^    ^^ ^^ ^^
  116.  
  117. Do you see all the 00s in between other values? And on the second line,
  118. there is 3 sets of 00 together? That's where the correct code stops.
  119.  
  120. Now, we need to get the correct code from the hex values. You can just use
  121. the ascii values in the data window. Remove the "." that is in between and 
  122. you will get u6-31} <,A,50
  123.  
  124. **There is a space between "}" and "<"
  125.  
  126. Now, re-enter "u6-31} <,A,50" as the code and click on the "Check" picture.
  127.  
  128. You will get the message "You made it! Now write up an essay and send it
  129. to: ReFleXZ@fcmail.com"
  130.  
  131. That is what I am doing. 8P
  132.  
  133. CrackMe Cracked!!
  134.  
  135. __________________________________________________________________________
  136.  
  137.  
  138.                              Final Notes
  139.  
  140. This tutorial is dedicated to all the newbies like me.
  141.  
  142. And because I'm a newbie myself, I may have explained certain things wrongly
  143. So, if that is the case, please forgive me. Email me if there is anything 
  144. you are not clear about.
  145.  
  146.  
  147. My thanks and gratitude goes to:-
  148.  
  149. The Sandman
  150. All the writers of Cracks tutorials and CrackMes