home *** CD-ROM | disk | FTP | other *** search
/ Jason Aller Floppy Collection / 61.img / FF1FRM-1.ZIP / WARLORD.TK < prev    next >
Text File  |  1989-09-30  |  3KB  |  56 lines

  1.  
  2. CRACKING FERRARI FORMULA ONE by -=The Knack=-
  3. ---------------------------------------------
  4.  
  5.     OK dude, this is NOT a common practice, but being a nice guy I
  6. quickly explain how I cracked this game Ferrari Formula One.  First I ran
  7. the damn thing and screwed around till I found some CP (Copy Protection).
  8. Found a doc check, tried control-break (some idiot programmers do leave
  9. this in) nadda.  Next I checked the F.EXE file for encryption, nope all
  10. the text was intact, .EXE header was normal, that's good!  Then I checked
  11. for CD16 (Int 16 - Keyboard) found none, CD13 (Int 13 - Disk) no disk
  12. check and CD21 (Int 21 DOS Services) tons of'em, that means the program
  13. uses DOS services without going straight to BIOS.  Then I started tracing
  14. the beginning just to see what I could see, 5 minutes later I had no
  15. keyboard response.  After reboot I found the routine that programmed the
  16. PIC (Programmable Interrupt Controller) to stop keyboard, what a drag.
  17. Besides that everything looked clean, very good.  So at this point I
  18. usually do one of 2 things.  
  19.  
  20. 1:  Check out all the INT 21's to find keyboard entry routines, then I
  21. change any 06 functions (Direct Keyboard Input, Ignores CNTRL-BREAK) to 07
  22. functions (which allow CNTRL-BREAK), then run the program and break out at
  23. the doc check.  This works about half the time, some programs revector INT
  24. 24 (where CNTRL-BREAK goes) to do something nasty but usually you wind up
  25. in Debug in a great position to start tracing and find the doc check code.
  26.  
  27. 2:  Run Quaid's Analyser - This one gives quicker results (if it works at
  28. all).  I chose this option and trapped INT 21, it was pretty boring
  29. because of all the intial DOS calls.   But that output to the PIC
  30. controller fucked Quaids, meaning it didn't trap CD21 anymore cause the
  31. keyboard was screwed, but when I answered the doc check incorrectly, boom,
  32. the PIC enabled the keyboard again and Quaids popped up.  I was in the
  33. "bomb" routine about to abort to DOS.  I wrote down the segment and offset
  34. of this routine and the first five entries in the stack.  I let the
  35. program end, reloaded under Debug and checked out those numbers.  Sure
  36. enough, the stack pointed right to the doc check routine (the doc check code
  37. used a far call to get to the bomb routine so the next instruction's
  38. segment and offset were pushed onto the stack before jumping to the bomb
  39. routine).  The rest is elementary, I found the code that compared your
  40. answer to the correct one, wrote over it with 90H's (NOP - No Operation)
  41. and changed the conditional jump to a forced jump (which jumps over the
  42. call to the bomb routine).  A little bit futher down there was the code
  43. that counted you tries, I changed that to 1 so you only had to press
  44. return once to get by the doc check since they gave you three tries to
  45. answer the doc check successfully (how nice).  Finally I searched the rest
  46. of the code for references to the doc check routine and the bomb routine
  47. to make sure there wasn't some other shit later on, everything was cool, 
  48.  
  49. WALLA!
  50.  
  51.     I know that's breif, but that should help you somewhat (and alot
  52. of other people!) don't expect this to be a regular thing unless you're in
  53. The -=FiRM=- !!!
  54.  
  55. -=Tk 1989=-
  56.