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

  1.             Tutorial Number 2
  2.  
  3. Written by Etenal Bliss
  4. Email: Eternal_Bliss@hotmail.com
  5. Date written: 1st Jan 1999
  6.  
  7. Program Details:
  8. Name: Volatility's CrackersConvert v1.0
  9. Type: Dec/Bin/Hex converter
  10. Language: Visual Basic
  11.  
  12. Tools Used:
  13. NuMega Softice
  14. NuMega SmartCheck
  15.  
  16. Cracking Method:
  17. Serial Fishing
  18. Code Analysis for Key Generator
  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. You will be shown a nag everytime you run the program saying that it is
  30. a Unregistered version. No disabled function. To register, you need to
  31. enter UserName and Registration Code
  32.  
  33. __________________________________________________________________________
  34.  
  35.                                  The Essay
  36.  
  37. As this is a tutorial for newbies, I'll go into details about how I go about 
  38. cracking the program. I suggest that you read this tutorial first.
  39. When you have completed the tutorial, try to re-do everything. 
  40. Then, the knowledge will be in you. 8)
  41.  
  42.  
  43. __________________________________________________________________________
  44.  
  45.                 Serial Fishing
  46.  
  47. First, reboot your computer and get softice started if you haven't done so.
  48.  
  49. Since this is a VB program, normal breakpoints will not work. Reading 
  50. somewhere about breakpoints for VB program, I decided to use
  51.  
  52. bpx __vbastrcomp  (string compare)
  53.  
  54. **bpx means "Breakpoint on execution".
  55.  
  56.  
  57. Run the program. Go to the registration screen. Type in all your particulars.
  58. In my case, I entered Eternal Bliss and 2353535.
  59.  
  60. Get into Softice by pressing Ctrl D.
  61. Now set the breakpoint as mentioned above. Press Ctrl D or F5 to return 
  62. to the program.
  63.  
  64. Click on the "Validate" button.
  65.  
  66. You will break in Softice at
  67. xxxx:7B2F3563  55  PUSH EBP
  68.  
  69. **xxxx are numbers. Since yours will be different from mine, I left them
  70.   out.
  71.  
  72.  
  73. F10 a few steps till you get to 
  74. xxxx:7B2F3574  8B4510  MOV EAX, [EBP+10]
  75.  
  76. **F10 - step over (skip over function Calls)
  77.   (same as [F8], but will not go into function Calls)
  78.  
  79. type d eax and "Enter"
  80. look in the data window. See your code in wide character 2.3.5.3.5.3.5
  81.  
  82. **If you can't see anything, type WC to activate or deactivate your code
  83.   window.
  84.  
  85.  
  86. F10 a few more steps till you get to 
  87. xxxx:7B2F3585  8B4D0C  MOV ECX, [EBP-0C]
  88.  
  89. type d ecx and 'Enter"
  90. look in the data window. See your code in wide character R.E.G.-.1.3.8.0.-.C.O.D.E
  91.  
  92. __________________________________________________________________________
  93.  
  94.                 Code Analysis
  95.  
  96. Now, it is time to understand how the Registration code is calculated...
  97.  
  98. Run SmartCheck. Load the CrackersConvert using it by using "File", "Open"
  99. and choose cconvert.exe.
  100.  
  101. If this is your first time using SmartCheck, do the following:-
  102. Under Program Settings:-
  103.     Error Detection: "tick" all boxes except "Report errors immediately".
  104.     Advanced: "tick" first 4 boxes. 
  105.           Make sure "Suppress system API and OLE calls" is not "ticked".
  106.     Reporting: All boxes "ticked" except for "Report MouseMove events 
  107.            from OCX controls"
  108.  
  109.  
  110. Run cconvert.exe in SmartCheck by pressing F5. Run through the program 
  111. as normal and go straight to the register screen. Type in all your particulars.
  112. In my case, I entered Eternal Bliss and 2353535. Then Click on "Validate" 
  113. button. You will get the "Sorry, Better Luck Next Time" message. 
  114. Exit cconvert.exe. 
  115.  
  116. **Do this quick or else you will get a LOT of lines!!!
  117.  
  118. Ok. You will see a lot of lines in the left window. Look for cmdValidate_Click.
  119.  
  120. **This is the subroutine in VB that is called when you click on the 
  121.   "Validate" button.
  122.  
  123. Click on cmdValidate_Click. Under "View" in SmartCheck, choose
  124. "Show All Events" and "Show Arguments".
  125.  
  126. **Make sure you click on cmdValidate_Click first or you will be lost
  127.   in a sea of codes!!!
  128.  
  129. Click on the + sign next to cmdValidate_Click to expand the threads
  130. under it. You can go through every single thread if you want. 
  131. But what we are looking for is my usename and my code I typed.
  132.  
  133. You will see these:
  134. 1) Asc(String:"Etern")
  135.      Asc returns Integer:69
  136.  
  137. 2) __vbaVarMul(VARIANT:String:"69",VARIANT:Interger:20)
  138.  
  139. next few lines, you see "REG-" added to the "1380" and then "-CODE" added as well.
  140.  
  141. 3) __vbaVARTstEq(VARIANT:String:"2353535",VARIANT:String:"REG-1380-CODE")...
  142.  
  143.  
  144. Explanation:
  145. 1) Asc is a command in VB (and other programming languages) that will convert
  146.    an ascii to a number. "E" will be converted to "69"
  147.  
  148. 2) __vbaVarMul is used to multiply two variables here. So, 69 * 20 = 1380 !!!!!
  149.  
  150. **You should understand how the registration code is generated now...
  151.  
  152. 3)  __vbaVARTstEq is used to compare the two strings. In this case, it is
  153.    our registration code and the real code.
  154.  
  155. __________________________________________________________________________
  156.  
  157.                 Part of a Key Generator
  158.  
  159. Here is the calculation routine used in my key generator:
  160.  
  161. Private Sub Command1_Click()
  162. On Error Resume Next
  163. Dim han, Decy
  164. han = Text1.Text
  165. If han = "" Then
  166. MsgBox "You have to enter something!!", vbOKOnly + vbCritical, "Handle field cannot be left empty"
  167. GoTo Nex
  168. End If
  169. Decy = Asc(han)
  170. Decy = Decy * 20
  171. Label1.Caption = "REG-" & Decy & "-CODE"
  172. Nex:
  173. End Sub
  174.  
  175. __________________________________________________________________________
  176.  
  177.  
  178.                                 Final Notes
  179.  
  180. This tutorial is dedicated to all the newbies like me. I've tried to
  181. explain everything in details.
  182.  
  183. And because I'm a newbie myself, I may have explained certain things wrongly
  184. So, if that is the case, please forgive me.
  185.  
  186.  
  187. My thanks and gratitude goes to:-
  188.  
  189. The Sandman
  190. All the writers of Cracks tutorials