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

  1. Flu[X]/PC98 Cracking tutor #4 - Using W32Dasm to its potential
  2.  
  3. Tools
  4. -Unreal Player MAX (i used v1.27)
  5. -W32Dasm
  6. -Byte patch maker
  7. -Hackers view 5.65+
  8. -Brain (Stop by your local hardware store and pick one up)
  9.  
  10. OK, not many people have actually used W32 Dasm's debugger..
  11. Well, why not?
  12.  
  13. Heres a good example of how to use the debugger..
  14. This program is protected by two checks (yep count em')
  15. Once when the program loads and once when you try to play
  16. a file. The first one is easy... and unless you use W32's debugger..
  17. the second could be hard...
  18.  
  19. OK, lets run the program once.. now exit... move the date
  20. ahead 2 months or so.. restart.. hey look its expired..
  21. ok.. remember the messages it gives us...
  22. Disassemble the file in w32dasm... wait..wait..wait..
  23.  
  24. ok once its done decompiling do a text search for.. "This version is expired"
  25. or whatever it's message was..
  26.  
  27. you should scroll up a bit until we come to this interesting code..
  28.  
  29. mov eax,esi
  30. call 0047ca6c
  31. mov eax, dword ptr [00489600]
  32. cmp dword ptr [eax], 0000001E  <-- 1E = 30 decimal | compare counter to 30 days
  33. jg 004810d6                    <-- if weve been using for 30+ days jump to expire
  34. mov eax, dword ptr [00489600]  <-- move counter in again
  35. cmp dword ptr [eax], FFFFFFD   <-- compare for clock rollback
  36. jge 0048112b                   <-- if no roll back detected.. make the jump
  37.  
  38. so how would we fix this?
  39. like so
  40.  
  41.  
  42. mov eax,esi
  43. call 0047ca6c
  44. mov eax, dword ptr [00489600]
  45. cmp dword ptr [eax], 0000001E  <-- 1E = 30 decimal | compare counter to 30 days
  46. nop                            <-- use 2 nops to remove jump and fill bytes
  47. nop                   
  48. mov eax, dword ptr [00489600]  <-- move counter in again
  49. cmp dword ptr [eax], FFFFFFD   <-- compare for clock rollback
  50. jmp 0048112b                   <-- always jump to good code
  51.  
  52.  
  53. ok.. we simply remove the one jump.. because it goes to "bad" stuff
  54. and we never want it to goto there. Then we make it so under ALL
  55. conditions it jumps to the good code :)
  56. Ok, load up Hackers View and make the changes to the file.
  57.  
  58. Ok run our target...
  59. looks good dont it?
  60. ok play a mp3 file or wav file or whatever.. what?.. it just closed on us
  61. hrmmm.. we must have missed something.. oh wait.. remember.. i said
  62. there were 2 checks.. ok load un w32dasm again and de-compile it (again)
  63. ok hit the 'debug' menu item and select 'load process' hit 'load' button
  64. when a new window pops up...
  65.  
  66. wait for it to load the file into mem.. hit the Run button on
  67. the one side window.. Ok, unreal player MAX starts.. ok try to
  68. play a file again
  69. it will exit. now hit the close button.. re-enlarge W32
  70.  
  71. ok,, it conveniently dropped us off where the program quit..
  72. hey look there is a function called Exit Process.. i wonder what that
  73. does? maybe closes a program!!  ok.. so we want to skip that beast.
  74. scroll up a bit...  hey look at this.. dont it look somewhat
  75. familiar with a few small changes ???
  76.  
  77. .
  78. .
  79. .
  80. mov eax, dword ptr [00489600]
  81. cmp dword ptr [eax], 0000001E  <-- 1E = 30 decimal | compare counter to 30 days
  82. jg 004810d6                    <-- if weve been using for 30+ days jump to expire
  83. mov eax, dword ptr [00489600]  <-- move counter in again
  84. cmp dword ptr [eax], FFFFFFD   <-- compare for clock rollback
  85. jge 0048112b                   <-- if no roll back detected.. make the jump
  86. .
  87. .
  88. .
  89. call Exit Process
  90.  
  91. make the same changes as above.. try to play a file now. wow it works!!
  92. congrats.. you just cracked Unreal Player MAX!
  93.  now use your patch maker and make a patch file. BAM.. your all set!
  94.  
  95.