home *** CD-ROM | disk | FTP | other *** search
/ KeyGen Studio 2002 / KeyGen_Studio_2002.iso / Tutorials / Code Inside / Tut5.txt < prev    next >
Encoding:
Text File  |  2001-09-21  |  4.6 KB  |  136 lines

  1. *************************************************************************************************
  2.                     IconToy V3.1
  3. *************************************************************************************************
  4.  
  5. Author:        Lighttek Software
  6. Protection:    Name / Serial
  7. URL:        http://www.lighttek.com/files/icontoy.zip
  8. Tools:        W32Dasm V8.93
  9.         Hex-Editor
  10.  
  11.  
  12. --->    Let's Begin...
  13.  
  14. Start the program and click on "?" on top of the program then we'll get the about box.
  15. Click on the second tab which says "Registration".
  16. Then we can enter a Registration Name and Code, enter anything you want and click on "Register!".
  17. Then you'll get a Message Box saying:
  18.  
  19.  
  20. "Registration key error!"
  21.  
  22.  
  23. Ok, remember this line or write it down on some paper and open up W32Dasm.
  24. Then disassemble the file "icontoy.exe" and click on "Strn Ref" (String Data References).
  25. Now search for that line we found and double click on it and we're here:
  26.  
  27.  
  28. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  29. |:00485FAC (C)
  30. |
  31.  
  32. * Possible StringData Ref from Code Obj -> "Registration key error!"
  33.                   |
  34. :00486076 B838614800          mov eax, 00486138
  35. :0048607B E80080FCFF          call 0044E080
  36.  
  37.  
  38. Notice the (C)onditional Jump from Address "00485FAC" there must be the choice between good and
  39. bad :)
  40. So trace a few lines up till that Address and you'll see this:
  41.  
  42.  
  43. :00485F9B A104E94800              mov eax, dword ptr [0048E904]
  44. :00485FA0 E8B3FCFFFF              call 00485C58                <--- Check out this call
  45. :00485FA5 803D00E9480001          cmp byte ptr [0048E900], 01
  46. :00485FAC 0F85C4000000            jne 00486076                <--- THIS IS THE PLACE!!!
  47. :00485FB2 8D55F8                  lea edx, dword ptr [ebp-08]
  48. :00485FB5 8B45FC                  mov eax, dword ptr [ebp-04]
  49. :00485FB8 8B800C030000            mov eax, dword ptr [eax+0000030C]
  50.  
  51.  
  52. Now we know the place to patch but before we're going to patch the program check out the call.
  53. So double click on the "call 00485C58" and press "Left", now we're stepping into the call.
  54. Now if you trace a little bit down you'll notice a lot of compares, these are all serials.
  55. If you want to check this out a little better use SoftICE and break with "hmemcpy" then you'll
  56. see that it makes a value out of your serial number you've entered and it just compares that
  57. value with these values :)
  58. If you want to know what serials are made out of these values then write a program of your own
  59. and use "wsprintfA" and the value "%d" then you'll see the real serials :)
  60. But anyway get back to that JNE and double click on it then look at the bottom of the window.
  61. You'll see this:
  62.  
  63.  
  64. @Offset 000853AC
  65.  
  66.  
  67. Write down the Offset or keep in mind and open up a Hex-Editor and close W32Dasm.
  68. Then in your Hex-Editor open up the program (icontoy.exe) and get to that Address (000853AC).
  69. Then change it into this:
  70.  
  71.  
  72. 0F85C4000000    --->    909090909090
  73.  
  74.  
  75. I've just used the NOP function, i can also let it jump a little bit but why should I :)
  76. Now when you've done all this and you entered a fake Name and Serial you'll probably notice
  77. something, it says that your registered now, so that's ok :)
  78. But the Registration tab isn't away hmm... maybe it doesn't go away i suggest to restart the
  79. program so close it and start again.
  80. Goddamnit, the Registration is still here so it does another check :)
  81. Ok, remember all those values it compares to we're going to take a better look there so fire up
  82. W32Dasm again (Sorry if you closed it :) and get to that Address of all those compares (00485C6B)
  83. Now you'll see something like this:
  84.  
  85.  
  86. cmp eax, xxxxxxxx
  87. je 00485E2F
  88. cmp eax, xxxxxxxx
  89. je 00485E2F
  90. ...
  91.  
  92.  
  93. When you've entered a correct serial all those JE's jumps to the Address 00485E2F.
  94. Ok check out the last compare it looks like this:
  95.  
  96.  
  97. cmp eax, xxxxxxxx
  98. jne 00485EAB
  99.  
  100.  
  101. See the last one jumps to another location and we fail :)
  102. So we're going to patch this JNE to NOP and every entered serial will work.
  103. Double click on the JNE and look down below you'll see this:
  104.  
  105.  
  106. @Offset 0008522D
  107.  
  108.  
  109. Write down on some paper or keep in mind and close W32Dasm and open up your Hex-Editor.
  110. Then go to that location and change it into this:
  111.  
  112.  
  113. 757C    --->    9090
  114.  
  115.  
  116. Save it and start the program.
  117. You probably noticed something when the program starts it has no Registration tab anymore and
  118. we're allready registered :)
  119. So it checks the place with the compares allready when the program begins.
  120. Ok, program patched !!!
  121.  
  122. If you have questions mail me at:    code.inside@home.nl
  123.  
  124.  
  125. --->    Greetings
  126.  
  127. Everybody at TrickSoft,
  128. Everybody at FCC,
  129. Everybody in #Cracking4Newbies and YOU :)
  130.  
  131.  
  132.             Don't trust the Outside, trust the InSiDe !!!
  133.  
  134.                       Cya...
  135.  
  136.                     CoDe_InSiDe