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

  1. Flu[X]'s Cracking tutor #3
  2.  
  3. Ok, well i havent wrote one in over a month..
  4. This one i kinda basic... but still semi interesting..
  5.  
  6. Tools:
  7. -Cyber Creek Avalanche 98 (www.cybercreek.com)-- I used build 1351
  8. -W32Dasm
  9. -A patch maker (I prefer my patching engine)
  10. -Brains
  11.  
  12. Ok first lets gather some info about this program...
  13. We start it and see a nag...
  14. we hit ok.. blah.. aonther nag comes up... 
  15. We have 2 chouces.. a serial or a patch...
  16. I briefly traced through it in softice.. and it didnt look
  17. like it was gonna be fun to make a serial... so
  18. on with the byte patch....
  19.  
  20. Ok we  disassemble it... lets look for that annoying
  21. text in the opening nag...
  22.  
  23. After searching you will come across the below code...
  24.  
  25.  
  26. * Referenced by a CALL at Address:
  27. |:0045F5C3   
  28. |
  29. :0045F42C 55                      push ebp
  30. :0045F42D 8BEC                    mov ebp, esp
  31. :0045F42F 803D98CE490000          cmp byte ptr [0049CE98], 00  <- could it be a regflag??
  32. :0045F436 7551                    jne 0045F489                 <- if not 0 pass the nag screen
  33. :0045F438 6840200400              push 00042040
  34.  
  35. * Possible StringData Ref from Code Obj ->"CyberCreek Avalanche 98"
  36.                                   |
  37. :0045F43D B98CF44500              mov ecx, 0045F48C
  38.  
  39. * Possible StringData Ref from Code Obj ->"     This application requires "
  40.                                         ->"that you license this product "
  41.                                         ->"before using it."
  42.  
  43.  
  44.  
  45. Ok. now look at the 2 lines i have marked... not bad eh?
  46. it looks like a simple regflag... For those of you that dont
  47. know what a regflag is, a regflag is like a true/false marker
  48. to tell a program if it is registered or not.. switching the marker
  49. usually will make a program be registered..
  50.  
  51. well... since the is most likely a regflag system.. just changing
  52. the jump wont be good enough as other items in this program usually
  53. use it to..  however we have a nice advantage here.. remember how
  54. the first thing we saw was that nag screen and how it is controlled
  55. by this regflag... well most likely this is the first item to pass
  56. through the regflag test.. meaning it is the first item to check the
  57. flag :) This means we can modify the content of the flag before
  58. anything else uses it..
  59.  
  60. we know that if the flag = 0 it is unregistered,,, so we change it to 1
  61. then we fix that nasty jump to always skip that nag :)
  62. new code should look like this: 
  63.  
  64.  
  65. * Referenced by a CALL at Address:
  66. |:0045F5C3   
  67. |
  68. :0045F42C 55                      push ebp
  69. :0045F42D 8BEC                    mov ebp, esp
  70. :0045F42F 6C3D98CE490100          mov byte ptr [0049CE98], 01 <- move the flag to true :)
  71. :0045F436 EB51                    jmp 0045F489                <- skip the nag :)
  72. :0045F438 6840200400              push 00042040
  73.  
  74. * Possible StringData Ref from Code Obj ->"CyberCreek Avalanche 98"
  75.                                   |
  76. :0045F43D B98CF44500              mov ecx, 0045F48C
  77.  
  78. * Possible StringData Ref from Code Obj ->"     This application requires "
  79.                                         ->"that you license this product "
  80.                                         ->"before using it."
  81.  
  82.  
  83. thats it.. run it.. now it runs like the registered copy.. funny
  84. how programmers protect a 300$ program isnt it?
  85.  
  86. now use your patcher of choice to make a patch :)
  87.