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

  1.  
  2.                             the right way to go!
  3.          ▄▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄▄       ▄▄▄▄▄▄▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄▄
  4.          █ ▄▄▄▄ █  █ ▄▄▄▄ ▀▀▀▀▀▀▀▀▀ ▄▄▄▄ ▄▄▄▄ ▀▀▀▀ ▄▄▄▄ ▀▀▀▀▀▀▀▀▀▀█  
  5.          █ ████ █  █ ████▀████ ████ ████ ████ ████▀████ ████ ████ █  
  6.          █ ████ ▀▀▀▀ ████ ████ ████▄████ ████ ████ ████ ████ ████ █  
  7.          █ ████ ████ ▄▄▄▄▄████ ▄▄▄███▄▄▄ ████ ████ ▄▄▄▄ ████ ████ █  
  8.          █ ████ ████ ████ ████ ████ ████ ████ ████ █  █ ████▀▀▀▀▀ █  
  9.          █ ████▄████ ████▄████ ████ ████ ████ ████ █  █ ████ █▀▀▀▀▀  
  10.          █ ▀▀▀▀ ▄▄▄▄▄▄▄▄▄▄ ▀▀▀ ▄▄▄▄▄ ▀▀▀  ▀▀▀ ▀▀▀▀ █  █ ▀▀▀▀ █
  11.          ▀▀▀▀▀▀▀▀        ▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀  ▀▀▀▀▀▀▀▀
  12.  
  13.                       GERMAN CRACKING FORCE / PC -───▄
  14.                       ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀  
  15.  
  16.  
  17.           
  18.  
  19. Cracking - HowTo #1 made for you by Yaan! [Laxity]
  20.  
  21.  
  22.  
  23. Due to countless requests, I will show you how to crack a shareware program.
  24. The example i will be using is Ghosttyper 1.0e You can get it here:
  25.  
  26.             www.ghosttyper.com. 
  27.  
  28. If you want to crack it using this tutorial, be sure to get version 1.0e. 
  29. Otherwise, the adress-areas and patterns i will tell you about may be different. 
  30. Oke lets get started.
  31.  
  32. Things you will need:
  33.  
  34. *HEXEDITOR:
  35. I`m using Ultraedit 5.20, because it has those cOOl little tabs to switch between 
  36. different files, and it has no size-limit. Any other HExEd will do the same.
  37. If you have it, you can also use HIEW.
  38.  
  39. *DISASSEMBLER:
  40. I`m still using WDASM 8.9, because i can`t unpack that damn IDA 3.75 
  41. You will find WDASM spread all over the net. 
  42.  
  43. *PC
  44. If you are reading this on a monitor, THAT problem is solved already.
  45.  
  46. *BRAIN
  47. Oke, this one`s really easy, so you won`t need a high IQ.
  48.  
  49.  
  50. Now let`s get into it:
  51. First, let`s install that proggie and take a look. To keep this 
  52. usable for all you guys out there, i will translate the german 
  53. stuff into english. (If there is some)
  54.  
  55. Now, let`s see what has been installed: 
  56.  
  57. GhostKey.dll    ----->    Dynamic Link Library
  58. Ghostt_e.hlp    ----->    Helpfile_English
  59. Ghostt_g.hlp    ----->    Helpfile_German
  60. GhostTyp.exe    ----->    Executable
  61. GhostTyp.INI    ----->    .INI
  62. Install.log    ----->    This one logged the installation
  63.  
  64. Now let`s run the .EXE to see how the program is protected and what it does to
  65. make you register. There we have a SplashScreen, saying that the program is not 
  66. registered, and that you are in the 30-day TrialPeriod. The "OK" button is not 
  67. active until a TimeLoop is done. Now, click on "Register" and type in your name
  68. and a code-dummy. I use Yaan! [Laxity] for the name and 123456789 for the code.
  69. Click on "OK". There will be a message telling you that you have entered the 
  70. wrong code. Write down that errormessage. We will use that to try to find out 
  71. more about the protection. Let`s disassemble the .EXE with WDASM. Once it is 
  72. disassembled, you will see the program in ASM-code.
  73.  
  74. In WDASM, click on "String references" and search for the errormessage that
  75. popped up when you entered the wrong code. Did you find it ? No ?
  76. Hmmmmm. It`s not in there. Oke, that was shit. Normally, this is the first thing 
  77. for me to do. When you can`t find it, you have to find & use a different
  78. AttackPoint to crack it.
  79.  
  80. Then lets peek a little bit into those string references to find something interesting.
  81. Whooops. Wait. One string says "Unregistered". Thats bad, lets see if we find "Registered"
  82. That`s what we want it to be, right ? Scroll a bit upwards and there you go.
  83. DoubleClick on "Registered" once. I`m always doing another DoubleClick to see if 
  84. there`s another Reference for that one. Now you are into the code where the program 
  85. decides if it is registered or not. So lets see :
  86.  
  87.  
  88. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  89. |:00462FA3(C)
  90. |
  91. :00463012 E891D9FBFF              call 004209A8
  92. :00463017 8B45FC                  mov eax, dword ptr [ebp-04]
  93. :0046301A E8C53EFAFF              call 00406EE4
  94. :0046301F 8BF0                    mov esi, eax
  95. :00463021 E86A8CFFFF              call 0045BC90
  96. :00463026 3BF0                    cmp esi, eax
  97. :00463028 754E                    jne 00463078    <-------------- Hello there !        
  98. :0046302A E89D8BFFFF              call 0045BBCC
  99. :0046302F 6A00                    push 00000000
  100. :00463031 8D4DF4                  lea ecx, dword ptr [ebp-0C]
  101.  
  102. * Possible StringData Ref from Code Obj ->"Registered"
  103.  
  104.  
  105. This is what you should see after you DoubleClicked on "Registered". As you can see 
  106. at the top, this SringData is referenced by a conditional jump at adress :00462FA3. 
  107.  
  108. So we are doing a rude "dirty" crack for now, take a look at the above asm code.
  109. There are some calls you can step into by clicking "Goto code location" This will 
  110. tell you more about what is done. But to me, this area seems to be important:
  111.  
  112. :00463026 3BF0                    cmp esi, eax    -----> compares esi / eax
  113. :00463028 754E                    jne 00463078    -----> Jumps to 00463078 if Not Equal
  114.  
  115. So it looks like if the code you entered is compared to the right one calculated, 
  116. and he jumps to 00463078, if it`s not the correct one. Hmmmmm. So why don`t we simply 
  117. change the conditional jump ? Let`s make him jump only to 00463078 ( bad register), 
  118. if you entered the CORRECT code. So we will have an any Name / Number Crack. 
  119. Every Number will register the program, except the correct one which is calculated by 
  120. the protection scheme. 
  121.  
  122. In WDASM, click on this line:
  123.  
  124. :00463028 754E                    jne 00463078
  125.  
  126. At the statusline, you will see the offset where you can patch the jump into the
  127. GhostTyp.exe. For me, it says @offset 00062428h. So bring up your HexEditor and 
  128. load the .exe. Go to offset 00062428h
  129.  
  130. You will find the following pattern:
  131.  
  132. ->75<- 4E E8 9D 8B FF FF 6A        uNΦ¥ï  j
  133.  
  134. now change the 75 at the beginning to 74:
  135.  
  136. ->74<- 4E E8 9D 8B FF FF 6A        tNΦ¥ï  j
  137.  
  138.  
  139. Changing the 75 to 74 will replace the JNE with JE in line 00463028
  140. So it will jump only if the code is correct ( Jump if Equal )
  141. I will refer to some bytepatterns later.
  142.  
  143.  
  144. Save the patched file under a different name (e.g. GhostTypCRK.exe)
  145. Let`s see if it worked. Run GhostTypCRK.exe, click on "Registrieren" 
  146. (that`s "Register" in german ), enter any Name and any Number, click on "OK" 
  147.  
  148. Wheeee. You are registered, and you just cracked Ghosttyper 1.0e
  149. (Thanks to this tutorial, don`t forget) So now you can go for your own
  150. cracks and practice some years & join Laxity !
  151.  
  152. Now, I have a little surprise for you: Ghosttyper has a built-in keygenerator ! 
  153. After you have cracked & registered the program, look at your GhostTyp.INI.
  154. Did you ? There you have THE CORRECT CODE with the name you entered. 
  155. And it`s not even crypted. Doh; that`s realllllly stupid ! 
  156. To generate more numbers, simply delete the .INI and register as often as you like.
  157.  
  158. THATSIT !
  159.  
  160.  
  161. Sure, there are more ways to crack it, and this one`s not the cleanest,
  162. but it works and is easy to explain in this way. 
  163.  
  164. *Bytepatterns:
  165.  
  166. JNE    Jump if Not Equal    75
  167. JE    Jump if Equal        74
  168. JMP    Jump            EB
  169. NOP    No Operation        90
  170. JA    Jump if Above        77
  171. JB    Jump if Below        72
  172. JNA    Jump if Not Above    76
  173. JLE    Jump if Less or Equal    7E
  174. JL    Jump if Less        7C
  175.  
  176. You HAVE to learn assembler to crack programs. Oke, you will NEED
  177. the basics, but the more you know about ASM, the faster you can 
  178. understand the code & protection. ( Oh, really ?)
  179. The JNE / JE commands can be used for any name / number cracks
  180. as good as for timelimited trialversions. The NOPs might be useful 
  181. to override code you won`t to be executed. And you can use JMP for 
  182. jumping to codeareas you want to be executed right away. 8)
  183.  
  184. If I get some positive responses on this, maybe I will put up some
  185. other tutorials. But don`t ask for it, it`s done when it`s done !
  186.  
  187.             Have phun !
  188.               Yaan! [Laxity]    
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  ╠═════════════════════════════─»   Membaz:  «─═════════════════════════════╣
  198.  ║                                                                          ║
  199.  ║        Animalo      (leader ) PC        ▄ laxity_hq@gmx.net              ║
  200.  ║                                                                          ║
  201.  ║        SONIC 98     (cracker) PC        ▄ laxity_s98@gmx.net             ║
  202.  ║        pCsK8R       (cracker) PC        ▄ laxity_pc@gmx.net              ║
  203.  ║        Yaan!        (cracker) PC        ▄ laxity_yaan@hotmail.com        ║
  204.  ║        JoGy         (cracker) PC        ▄ jogy_laxity@hotmail.com        ║
  205.  ║        The Brain    (cracker) PC        ▄ the.brain.@gmx.net             ║
  206.  ║        xCrk         (cracker) PC        ▄                                ║
  207.  ║        vTeC         (cracker) PC        ▄                                ║
  208.  ║                                                                          ║
  209.  ║        Tiger of THT (gfxer  ) PC        ▄                                ║
  210.  ║        Raptor #1    (driver ) PC        ▄                                ║
  211.  ║                                                                          ║
  212.  ╠══════─» Greetz «─════════════════════════════════════════════════════════╣
  213.  ║                                                                          ║
  214.  ║                  APP - GCG - GWA98 - NEXUS98                             ║
  215.  ║                                                                          ║
  216.  ╠═════════════════════════════════════════════════════─» Join Laxity «─════╣
  217.  ║                                                                          ║
  218.  ║ Are you a cracker?... Contact the founder and ask him if you can join!   ║
  219.  ║ Are you a courier?... Contact the founder and ask him if you can join!   ║
  220.  ║                                                                          ║
  221.  ╚════════════════════─» http://cracking.home.pages.de «─═══════════════════╝
  222.