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

  1.             Tutorial Number 3
  2.  
  3. Written by Etenal Bliss
  4. Email: Eternal_Bliss@hotmail.com
  5. Date written: 9th Jan 1999
  6.  
  7. Program Details:
  8. Name: Immortal Descendants CrackMe v1.0
  9. Author: Volatility
  10. Language: Visual Basic
  11.  
  12. Tools Used:
  13. NuMega Softice 3.23
  14. NuMega SmartCheck 6.01
  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. No disabled function. To register, you need to enter 
  30. UserName and Registration Code.
  31.  
  32. __________________________________________________________________________
  33.  
  34.                                  The Essay
  35.  
  36. As this is a tutorial for newbies, I'll go into details about how I go about 
  37. cracking the program. I suggest that you read this tutorial first.
  38. When you have completed the tutorial, try to re-do everything. 
  39. Then, the knowledge will be in you. 8)
  40.  
  41.  
  42. __________________________________________________________________________
  43.  
  44.                 Serial Fishing
  45.  
  46. First, reboot your computer and get softice started if you haven't done so.
  47.  
  48. Since this is a VB program, normal breakpoints will not work. Reading 
  49. somewhere about breakpoints for VB program, I decided to use
  50.  
  51. bpx __vbastrcomp  (string compare)
  52.  
  53. **bpx means "Breakpoint on execution".
  54. **__vbastrcomp is my favourite breakpoint for VB programs...
  55.  
  56. Run the program. Type in all your particulars.
  57. In my case, I entered Eternal Bliss and 2353535.
  58.  
  59. Get into Softice by pressing Ctrl D.
  60. Now set the breakpoint as mentioned above. Press Ctrl D or F5 to return 
  61. to the program.
  62.  
  63. Click on the "Register" button.
  64.  
  65. You will break in Softice at
  66. xxxx:7B2F3563  55  PUSH EBP
  67.  
  68. **xxxx are numbers. Since yours will be different from mine, I left them
  69.   out.
  70.  
  71.  
  72. F10 a few steps till you get to 
  73. xxxx:7B2F3574  8B4510  MOV EAX, [EBP+10]
  74.  
  75. **F10 - step over (skip over function Calls)
  76.   (same as [F8], but will not go into function Calls)
  77. **The reason why you should F10 till this part is because I have done the 
  78.   following:
  79.   1) When I broke in Softice, I used F10 and type "d register" for 
  80.      every register change. Register can be eax, ebx, ecx, edx, edi, esi etc
  81.  
  82. type d eax and "Enter"
  83. look in the data window. See your code in wide character 2.3.5.3.5.3.5
  84.  
  85. **If you can't see anything, type WC to activate or deactivate your code
  86.   window.
  87.  
  88.  
  89. F10 a few more steps till you get to 
  90. xxxx:7B2F3585  8B4D0C  MOV ECX, [EBP+0C]
  91.  
  92. type d ecx and 'Enter"
  93. look in the data window. See your code in wide character 
  94. 1.1.0.1.1.4.1.0.1.1.1.6.6.9
  95.  
  96. Exit Softice and type in Eternal Bliss as the Username and
  97. 11011410111669 as the serial. You will get this message:
  98. "Nice Work! On to Harder Things!"
  99. You are registered...
  100.  
  101. I did the following as well:
  102. 1) delete the space between "l" and "B" ie, EternalBliss as Username and 
  103.    it still uses the same serial.
  104. 2) Eternalbliss and Eternal uses the same serial too.
  105. 3) eternalbliss uses a different serial which can be found using the 
  106.    serial fishing method as above. serial = 110114101116101
  107.  
  108. **notice the similarity between the two serials?
  109.  
  110.  
  111. __________________________________________________________________________
  112.  
  113.                 Code Analysis
  114.  
  115. Now, it is time to understand how the Registration code is calculated...
  116.  
  117. Run SmartCheck. Load the program using it by using "File", "Open"
  118. and choose IDCrackMe.exe.
  119.  
  120. If this is your first time using SmartCheck, do the following:-
  121. Under Program Settings:-
  122.     Error Detection: "tick" all boxes except "Report errors immediately".
  123.     Advanced: "tick" first 4 boxes. 
  124.           Make sure "Suppress system API and OLE calls" is not "ticked".
  125.     Reporting: All boxes "ticked" except for "Report MouseMove events 
  126.            from OCX controls"
  127.  
  128.  
  129. Run IDCrackMe.exe in SmartCheck by pressing F5. You might get a notice
  130. saying that the program is compiled in P-code. Just continue loading 
  131. the program. Type in all your particulars.
  132.  
  133. In my case, I entered Eternal Bliss and 2353535. Then Click on "Register" 
  134. button. You will get the "Just kidding" message. 
  135. Exit IDCrackMe.exe. 
  136.  
  137. Ok. You will see a lot of lines in the left window. Look for cmdCommand1_Click.
  138.  
  139. **This is the subroutine in VB that is called when you click on the 
  140.   "Register" button.
  141.  
  142. Click on cmdCommand1_Click. Under "View" in SmartCheck, choose
  143. "Show All Events" and "Show Arguments".
  144.  
  145. **Make sure you click on cmdCommand1_Click first or you will be lost
  146.   in a sea of codes!!!
  147.  
  148. Click on the + sign next to cmdCommand1_Click to expand the threads
  149. under it. You can go through every single thread if you want. 
  150. But what we are looking for is my usename and my code I typed.
  151.  
  152. You will see these:
  153. 1) Asc(String:"nr") returns Integer:110
  154. 2) Asc(String:"ret") returns Integer:114
  155. 3) Asc(String:"etE") returns Integer:101
  156. 4) Asc(String:"tE") returns Integer:116
  157. 5) Asc(String:"E") returns Integer:69
  158.  
  159.  
  160. Explanation:
  161. Asc is a command in VB (and other programming languages) that will convert
  162. an ascii to a number. "nr" will be converted to "110". In actual fact, 
  163. only "n" is converted.
  164.  
  165. So we got n=110, r=114, e=101, t=116, E=69
  166.  
  167. Now, scroll up this tutorial and take a look at what the correct serial
  168. should be for Eternal Bliss...
  169.  
  170. Geddit? 8)
  171.  
  172. __________________________________________________________________________
  173.  
  174.                 Part of a Key Generator
  175.  
  176. Here is the part of the calculation routine used in my key generator:
  177.  
  178. Private Sub Command1_Click()
  179. On Error Resume Next
  180. Dim han, Decy
  181. han = Text1.Text
  182. length = Len(han)
  183. If length < 5 Then    'check to make sure there are at least 5 chars
  184. MsgBox "You have to enter at least 5 characters!!", vbOKOnly + vbCritical, "Error"
  185. GoTo Nex
  186. End If
  187. one1 = Mid(han, 5, 1)    'get 5th char
  188. one = Asc(one1)        'number of it
  189. two1 = Mid(han, 4, 1)    'get 4th char
  190. two = Asc(two1)        'number of it
  191. three1 = Mid(han, 3, 1)    'get 3rd char
  192. three = Asc(three1)    'number of it
  193. four1 = Mid(han, 2, 1)    'get 2nd char
  194. four = Asc(four1)    'number of it
  195. five1 = Left(han, 1)    'get 1st char
  196. five = Asc(five1)    'number of it
  197. Label1.Caption = one & two & three & four & five    'combine them together
  198. Nex:
  199. End Sub
  200.  
  201. __________________________________________________________________________
  202.  
  203.  
  204.                                 Final Notes
  205.  
  206. This tutorial is dedicated to all the newbies like me. I've tried to
  207. explain everything in details.
  208.  
  209. And because I'm a newbie myself, I may have explained certain things wrongly
  210. So, if that is the case, please forgive me.
  211.  
  212.  
  213. My thanks and gratitude goes to:-
  214.  
  215. The Sandman
  216. All the writers of Cracks tutorials