home *** CD-ROM | disk | FTP | other *** search
/ KeyGen Studio 2002 / KeyGen_Studio_2002.iso / Tutorials / CrackMesCbjNet / eb-mr2ez.txt < prev    next >
Encoding:
Text File  |  2001-09-21  |  4.4 KB  |  140 lines

  1.                         Tutorial Number 36
  2.  
  3. Written by Eternal Bliss
  4. Email: Eternal_Bliss@hotmail.com
  5. Website: http://www.Eternal-Bliss.net or http://vipatcher.cjb.net
  6. Date written: 19th May 2000
  7.  
  8. Program Details:
  9. Name: 2EZ Crackme #1 by Magic Raph
  10.  
  11. Tools Used:
  12. SmartCheck
  13. SoftIce
  14.  
  15. Cracking Method:
  16. Serial Sniffing
  17. Code Analysis
  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. This is a Name/Serial protection scheme written in Visual Basic 6. So,
  29. for VB, let's use SmartCheck. The Name must be of at least 3 chars.
  30.  
  31. _________________________________________________________________________
  32.  
  33.  
  34.                         About this tutorial
  35.  
  36. This tutorial relies quite a lot on my previous tutorials because I will
  37. not go into details on how to config SmartCheck and so on. Read my other
  38. stuff and you will learn.
  39.  
  40. _________________________________________________________________________
  41.  
  42.  
  43.                                 SmartCheck
  44.  
  45. Load the crackme into SmartCheck. Run it.
  46. Enter "Eternal Bliss" for the name and "1234567890" for the serial,
  47. both without the quotes. Click on "Check!". You will get a messagebox saying
  48. it is the wrong serial.
  49.  
  50. Now, let's look at SmartCheck's log.
  51. You will see a _Click with a + sign in front of it. Click on the + sign
  52. to expand it.
  53.  
  54. What you will see is lots of Len(), Mid$(), Asc(), Left$() and a MsgBox
  55. at the end. The MsgBox is the one you saw telling you that you had entered
  56. the wrong serial.
  57.  
  58. Notice all the Left$() contains numbers.
  59. And Mid$() contains your name and Asc() contains 1 char of your name.
  60.  
  61. So, it is Mid$(yourname) then Asc(char) and a Left$().
  62. That's how the serial is obtained.
  63.  
  64. Now, to serial sniff, click on the MsgBox and choose "View" -> "Show All 
  65. Events"
  66. in SmartCheck. Ah, even more stuff. Scroll up a bit and you will see a
  67. __vbaVarTstEq.
  68.  
  69. I repeat here again that all these commands have been mentioned in
  70. my previous tutorials and essays so I won't repeat them again. If you want
  71. to learn, download them and read.
  72.  
  73. Basically, __vbaVarTstEq is used to compare 2 variants which is a data type
  74. in VB. So, if you have entered "Eternal Bliss" as the name,
  75. "1419668" is compared with something else. Using a bit of intuition, let me
  76. guess that "1419668" is compared with the serial we entered. This is because
  77. after the compare, came the messagebox. 8)
  78.  
  79. Type in "1419668" in the serial box... You are the registered owner of the
  80. crackme. 8)
  81.  
  82. If you were to use softice, set a breakpoint using "bpx 
  83. msvbvm60!__vbaVarTstEq"
  84. the reason for msvbvm60! is because this crackme is written in VB6. If it 
  85. was
  86. a VB 5 program, you can just type "bpx __vbaVarTstEq".
  87. Once you break, trace into the calls. At a certain location, you will see
  88. mov edi, something and mov esi, something. If you type "d edi" and "d esi" 
  89. after
  90. the two lines, you will see both the serial you entered and the correct 
  91. serial.
  92. Have fun!
  93.  
  94. _________________________________________________________________________
  95.  
  96.  
  97.                              Additional Stuff
  98.  
  99. If you look carefully at the log in SmartCheck when it is showing all 
  100. events,
  101. you will see the following sequence.
  102. Mid$(Yourname)  - to get the char
  103. Asc(char)       - to convert to decimal
  104. __vbaVarMul     - multiple
  105. __vbaVarXor     - Xor
  106. __vbaVarMove    - move result into a variable
  107.  
  108. Using the last character of "Eternal Bliss" which is "s",
  109. here is what happens.
  110. Asc(s)          - give you 115 decimal for char "s"
  111. __vbaVarMul(VARIANT:Integer:115, VARIANT:Integer:12345) - multiple 115 by 
  112. 12345
  113. __vbaVarXor(VARIANT:Long:1419675, VARIANT:Integer:15)   - Xor the result 
  114. with 15
  115. __vbaVarMove(VARIANT:Long:1419668, ...)                 - move it to a variable
  116.  
  117. And this number "1419668" is the correct serial. This means that
  118. any other previous calculations are useless.
  119.  
  120. So, to code a Keygen, what you need is to get the last char of the name
  121. which must be at least 3 char long. Get the decimal value for it,
  122. multiple by 12345 and xor the result by 15.
  123.  
  124. _________________________________________________________________________
  125.  
  126.  
  127.                              Final Notes
  128.  
  129. This tutorial is dedicated to all the newbies like me.
  130.  
  131. My thanks and gratitude goes to:-
  132.  
  133. All the writers of Cracks tutorials and CrackMes
  134. and also to all the crackers that have been supporting my site and project 
  135. forum.
  136.  
  137.  
  138.  
  139.  
  140.