home *** CD-ROM | disk | FTP | other *** search
/ Crazy Collection 6 / CC-06.iso / gametool / util / gametool.arj / G.DOC < prev    next >
Encoding:
Text File  |  1993-02-05  |  19.3 KB  |  516 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                    GAMETOOLS V3.00 Copyright (c) 1990,1991,1992,1993
  11.                                 by Wong Wing Kin
  12.                               All rights reserved.
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25. What is GAMETOOLS?
  26.  
  27.         This is a TSR utility for cracking software protection such as
  28.     disk protection, password protection and registration screens.
  29.         It can also be used to modify the games so that they can be much
  30.     easier finished.
  31.         It includes an colorful internal debugger and ram viewer for
  32.     program debugging.
  33.         This program requires users to have some knowledge of IBM
  34.     PC assembly language and interrupts handling.
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48. Some histories of this GAMETOOLS:
  49.  
  50.         This program is originally released by Computing Age Publisher(HK).
  51.     In mid 1990, I sent this program and some other utilities with related
  52.     articles to Computer Age. At first, GAMETOOLS V1.0 could only run on
  53.     PC/XT but not AT. But after several months, Version 2.0 released, it
  54.     had less bugs and run on AT. In 12/90, this program and related articles
  55.     are published in CA#77.
  56.         In 12/91, a much improved version 2.7 is released. It can not only
  57.     run on AT or above, but deal with EGA, VGA, SVGA and use EMS memory. In
  58.     this version it use "DOS-STACK SWAPPING" technique to solve DOS re-
  59.     entrance problem so that GAMETOOLS can be popped up at anytime.
  60.         In 4/92, GAMETOOLS V2.72 is finished and released as a freeware for
  61.     all game crackers. It use XMS and EMS to save main memory. Moreover, it
  62.     provides function for other screen capture programs. EMS version uses
  63.     overlay technique to leave 16K resident portion in main memory.
  64.         In 7/92, GAMETOOLS V2.80 is released. It support 386 Debug Registers
  65.     debugging. It can set Hardware Break Point like TURBO DEBUGGER.
  66.         In 12/92, GAMETOOLS V2.9 is released and uploaded to Internet as
  67.     a freeware. This version is more user-friendly and with less bugs.
  68.         In 1/92, GAMETOOLS V3.0 is released and uploaded to Internet as a
  69.     shareware. This version includes a colorful internal debugger.
  70.  
  71. Memory requirement:
  72.  
  73.         There are three version of 2.90
  74.         Version                                           Main memory need
  75.     -----------------------------------------------------------------------
  76.         G3.EXE   ( use conventional memory only )        : 73632
  77.         G3X.EXE  ( use extended memory only )            : 56000
  78.         G3E.EXE  ( use expanded memory only )            : 11568 (need reg)
  79.  
  80.         The above figures may be slightly different from yours because of
  81.     different configurations of your computer. The above programs all need
  82.     a 386 CPU to run.
  83.         You must register GAMETOOLS in order to get EMS version.
  84.         To run G3E.EXE, you must have expanded memory. QEMM and EMM386
  85.     is need to be loaded in the config.sys.
  86.         To run G3X.EXE, extended memory is required. XMS driver HIMEM.SYS
  87.     should be added to your config.sys.
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94. Descriptions of all functions:
  95.  
  96.         After loaded GAMETOOLS, press [PtrScr*] to pop up GAMETOOLS. There
  97.     is a new hot key that is [Alt]+[PtrScr*] which will suspend the game
  98.     and restore all the interrupts so that older programs loaded before
  99.     GAMETOOLS can be popped up. You can use some screen capture programs
  100.     to saved the current screen.
  101.         When you enter numbers in GAMETOOLS, you must add '$' in front of
  102.     the hex number. e.g. $1234. But GAMETOOLS has already pre-typed '$'
  103.     before you enter the numbers.
  104.         You can also use short-hand to input. CS, DS, ES, SS, PS (PSP),
  105.     AX, BX, CX, DS, SI, DI, BP, SP can be recognized in the input.
  106.         Entering GAMETOOLS, you can have the following options to choose.
  107.     Just press the key to choose the option.
  108.  
  109.  
  110. 1.      [A] - Global Analysis - find the addresses such that their contents
  111.     are increased or decreased according to your specifications. It is used
  112.     to find the locations of memory storage of the life or power of the
  113.     game.
  114.  
  115.         There are two kinds of analyse:
  116.         Sub-function [B] - Byte analysis
  117.         Sub-function [W] - Word analysis
  118.  
  119.         Analysis is not once only. You may need to do at least three times
  120.     to find out the addresses. e.g. The life & power of you in the game is
  121.     continuous decreasing. To find out the addresses containing the life,
  122.     choose the global analysis in the main menu and enter the DOS path for
  123.     GAMETOOLS to save temporary files. Exit GAMETOOLS and wait until the
  124.     life decrease again. Press [PtrScr*] to pop up GAMETOOLS and analyze
  125.     again. Repeat the procedure at least three times and then choose [L]
  126.     - List addresses in the menu to list out all the addresses found.
  127.         If the changes are not strictly decreasing, you can use the arrow
  128.     keys to select [increase] or [decrease] during each analysis. Then
  129.     press [Enter] to begin analysis.
  130.  
  131.         Sub-function [L] - List addresses resulted from "Analysis". You
  132.     can have results only after two times analysis. You can use arrows
  133.     to scroll to and fro to view the addresses.
  134.  
  135.         Analysis results will be in the following format :
  136.  
  137.           the number of times of analysis; assume the first time is 0.
  138.           only the last 20 results will be kept.
  139.               v  v  v  v
  140.     ANALYSIS  03 02 01 00 <- the first time
  141.  
  142.     1234:0012 13 12 10 09 <- the contents in each analysis
  143.     1234:0019 31 30 2F 20
  144.     ^the address found
  145.  
  146.         After analysis, there may be many addresses found. Choose the one
  147.     that are most likely to be the desire address. That address may usually
  148.     have smaller value and small increment. Then change the content of that
  149.     address using the function [V] - RAM view to test if it is really the
  150.     one you want.
  151.  
  152.         Sub-function [R] - initialize the analysis process and ignore the
  153.         pervious results.
  154.  
  155.  
  156. 2.     [T] - Code tracing. Trace to find the address of the codes that
  157.     change the contents of the address you specified. You first enter an
  158.     address and then return to game. That address will be monitored by
  159.     GAMETOOLS. If the game try to change the contents of that address,
  160.     GAMETOOLS will pop up automatically and tell you the address of the
  161.     codes which have changed the contents. You can also choose to trace
  162.     the game till the content of that address changed to any value or
  163.     specified value. This function can be used to find the codes of the
  164.     game that change the life or power.
  165.  
  166.         For 386 debug registers debugging, there are following
  167.     sub-functions:
  168.         Sub-function [1] - Memory Execution
  169.             When CPU execute at the Break Point address,
  170.             GAMETOOLS will break the game and pop up.
  171.         Sub-function [2] - Memory Write
  172.             When CPU write to the Break Point address,
  173.             GAMETOOLS will break the game and pop up.
  174.         Sub-function [3] - Memory Read/Write
  175.             When CPU read/write to the Break Point address,
  176.             GAMETOOLS will break the game and pop up.
  177.         Sub-function [4] - Memory Write and Change
  178.             When CPU change the Break Point address's content to a
  179.             different value, GAMETOOLS will break the game and
  180.             pop up.
  181.         Sub-function [5] - Memory Change to a specified value
  182.             When CPU change the Break Point address's content to a
  183.             specified value, GAMETOOLS will break the game and
  184.             pop up.
  185.         For sub-function [1] to [3], you have to enter the Size of the
  186.         Break Point address. The Size can be 1, 2, 4. For example, if
  187.         Size of the Break Point is 4, the less significant 2 bits will
  188.         be masked (ignored) during Program Counter and Break Point
  189.         address comparsion.
  190.  
  191.  
  192. 3.      [V] - Internal Debugger. This is very handy to use. You can use
  193.     arrows, PageUp, PageDn, Home, End to scroll to and fro to view the
  194.     contents of the memory locations.
  195.         The assembly codes are printed in differer colors.
  196.  
  197.         Press [U] to toggle the display of memory in HEX/ASCII codes and
  198.     assembly codes.
  199.         Press [S] to search input string. There are String/Hex searches
  200.     both limit to 16 bytes length.
  201.         Press [N] to find next matched string.
  202.         Press [W] to change the content of the address that is show on the
  203.     top left corner.
  204.         Press [C] to change the current viewing address.
  205.         Press [T] to trace one step.
  206.         Press [P] to step over one instruction code. It will not trace
  207.     inside the following instructions 'CALL', 'INT', 'LOOP'. The debugger
  208.     will place a hardware break point on the next instruction.
  209.         Press [H] to go to the highlighted address. It just set a hardware
  210.     break point on the highlighted address.
  211.         Press [R] to change the contents of the registers.
  212.         Press [E] to view the user screen.
  213.  
  214.  
  215. 4.      [D] - Internal Debugger. GAMETOOLS will execute an INT 3 and go
  216.     to DEBUG or SYMDEB that is loaded before the game.
  217.  
  218.         Sub-function [3] - Shell to DEBUG. First, you should load DEBUG
  219.     form DOS and then load and execute GAMETOOLS from DEBUG. Then load
  220.     COMMAND.COM and execute it. Now you can enter your game. When you
  221.     choose sub-function [3] to shell to DEBUG, it actually generate an
  222.     INT 3 inside GAMETOOLS. At this moment, you can disassemble the code
  223.     found from tracing and change the codes to see immediate results.
  224.     Remember that you are still inside GAMETOOLS and do not change any
  225.     registers or enter Q to exit to DOS, or else you system may hang.
  226.     When you finish you job, enter G to return to GAMETOOLS.
  227.         If you want to trace the game at which you break it, choose the
  228.     sub-function [4] to debug the game which actually generate an INT 3
  229.     at the point of exit so that when exiting GAMETOOLS you will return
  230.     to DEBUG and you can use Trace function of DEBUG to trace the game.
  231.     But sometimes when you press [PtrScr*] when DOS function is executing,
  232.     you can not generate an INT 3 at that point because DEBUG may call
  233.     DOS function again which will cause DOS re-entrance problem.
  234.         Sub-function [0] - to restore the address of INT 3 to the original
  235.     address that is the one when GAMETOOLS is first loading because the
  236.     game may change the address of INT 3 to avoid you send break point.
  237.         Sub-function [1] - to toggle between the last changed address of
  238.     INT 3 and the current address of INT 3.
  239.  
  240.  
  241. 5.      [K] - Keep memory constant. You can enter an address and a value
  242.     so that GAMETOOLS will write that value to the address periodically
  243.     so as to keep it constant. The maximum number of addresses is 9 and
  244.     the address 0000:0000 means no address to be keep constant.
  245.         This function is useful when it is difficult to find all the codes
  246.     that change the life or power. You can first use [A] - Analyze to find
  247.     the address of the life and use [K] - to keep the address constant.
  248.     This procedure may not need any assembly language knowledge.
  249.  
  250.  
  251. 6.      [I] - Interrupt monitor. GAMETOOLS will pop up automatically when
  252.     specified interrupt is called. The contents of AH, AL, BH, BL, CH, CL,
  253.     DH, DL, SI, DI, BP, SP, DS, ES, SS, CS, IP before and after the
  254.     execution of the interrupt will be displayed on pop up.
  255.         On choosing this option, user will be asked to enter the number of
  256.     the interrupt to be monitored. Then choose to trace or not trace if
  257.     that interrupt is called from DOS. This is useful when you are
  258.     monitoring INT 13H as it allows you to capture those interrupt called
  259.     directly from the game.
  260.         If you need conditional tracing, this means GAMETOOLS will pop up
  261.     automatically only when the contents of the registers match your
  262.     specifications, you can enter the contents of each register so that
  263.     GAMETOOLS will pop up when the registers match what you have entered.
  264.     Enter [*] for all matches.
  265.         e.g. If you enter AH=0, GAMETOOLS will pop up only when AH=0
  266.     before executing the INT.
  267.  
  268.  
  269. 7.      [E] - User screen. View the game screen.
  270.  
  271.  
  272. 8.      [B] - Restore Keyboard and Video states
  273.  
  274.         Sub-function [0] - Restore INT 8, 9, 16 to the original address
  275.     that is the address when GAMETOOLS is first loaded and change video
  276.     mode to TEXT mode 3.
  277.         Sub-function [1] - Change INT 8, 9, 16 and video states to the
  278.     saved addresses and video states that are saved in the last operation
  279.     of the function [Debugging]-[Debug the game]. When you use the
  280.     [Debug the game] function, GAMETOOLS will change and save the keyboard
  281.     and video states so that you can use keyboard and screen to do
  282.     debugging. If then you want to continue to play the game, use this
  283.     function to restore the keyboard and video to the last saved states.
  284.  
  285.  
  286. 9.      [S] - Shell to DOS. Sometimes, because of the conflicts between
  287.     GAMETOOLS and the game, the system may hang.
  288.  
  289.  
  290. 10.     [Q] - Exit the game and back to DOS. Sometimes, because of the
  291.     conflicts between GAMETOOLS and the game, the system may hang.
  292.  
  293.  
  294. 11.     [C] - Change the frequency of the clock. That is the frequency of
  295.     the occurrence of INT 8. The current frequency is showed on the top
  296.     of the screen.
  297.  
  298.         Sub-function [0] - Change the frequency to zero.
  299.         Sub-function [1] - Change the frequency to normal (18.2Hz).
  300.         Sub-function [2] - Change the frequency to your input value.
  301.  
  302.         This function can be used to increase or decrease the speed of
  303.     the game. Usually, increase the frequency will increase the speed
  304.     the game.
  305.  
  306.  
  307. 12.     [U] - Uninstall GAMETOOLS. If you load other TSR after GAMETOOLS,
  308.     you may not uninstall it. Try to uninstall all the TSR load after
  309.     GAMETOOLS.
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324. How to modify the game to undead?
  325.  
  326. Using Internal Debugger:
  327.  
  328.         1. execute GAMETOOLS
  329.         2. run the game
  330.         3. use Global Analysis function to find the addresses containing
  331.            the life or power in the game.
  332.         4. use Internal debugger's RAM view to modify the contents of
  333.            those addresses found to see which one is desired.
  334.         5. use Hardware Break Point to trace where the game modify the
  335.            addresses found.
  336.         6. use Internal debugger's debugging function to disassemble and
  337.            modify the code and see the immediate results.
  338.         7. if can't find the codes or don't know how to modify them,
  339.            use Keep function to keep the life or power constant when
  340.            playing the game.
  341.         8. if you can successfully modify the game to undead, record that
  342.            portion of codes and shell to DOS to use some HEX file editor
  343.            to search and modify the executable files after exiting the game.
  344.         9. if cannot find them using HEX file editor, the executable files
  345.            may be packed by some executable file compressors. Use UP.EXE
  346.            to unpack the files and search again.
  347.  
  348. Using External Debugger:
  349.  
  350.         1. Load DEBUG or SYMDEB.
  351.         2. Load GAMETOOLS inside the debugger
  352.         3. execute it
  353.         4. Load COMMAND.COM and run inside the debugger
  354.         5. run the game
  355.         6. use Global Analysis function to find the addresses containing
  356.            the life or power in the game.
  357.         7. use RAM view to modify the contents of those addresses found
  358.            to see which one is desired.
  359.         8. use Hardware Break Point to trace where the game modify the
  360.            addresses found.
  361.         9. use [shell to debug] function to use debug to disassemble and
  362.            modify the code and see the immediate results.
  363.        10. if can't find the codes or don't know how to modify them,
  364.            use Keep function to keep the life or power constant when
  365.            playing the game.
  366.        11. if you can successfully modify the game to undead, record that
  367.            portion of codes and use some HEX file editor to search and
  368.            modify the executable files after exiting the game.
  369.        12. if cannot find them using HEX file editor, the executable files
  370.            may be packed by some executable file compressors. Use UP.EXE
  371.            to unpack the files and search again.
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393. How to crack password protection?
  394.  
  395. Using Internal Debugger:
  396.  
  397.         1. execute GAMETOOLS
  398.         2. run the game
  399.         3. When the program ask you to enter password, pop up GAMETOOLS
  400.            and use Internal Debugger function to debug the game.
  401.         4. try to understand what are the game doing.
  402.         5. Modify the game
  403.         6. Do the similar thing as modifying the game to undead.
  404.  
  405. Using External Debugger:
  406.  
  407.         1. Load DEBUG or SYMDEB.
  408.         2. Load GAMETOOLS inside the debugger
  409.         3. execute it
  410.         4. Load COMMAND.COM and run inside the debugger
  411.         5. run the game
  412.         6. When the program ask you to enter password, pop up GAMETOOLS
  413.            and use [Debug the game] function to debug the game.
  414.         7. try to understand what are the game doing.
  415.         8. Modify the game
  416.         9. Do the similar thing as modifying the game to undead.
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439. Use GAMETOOLS in QEMM, DV or WINDOWS 3.1:
  440.  
  441.     GAMETOOLS can be runned succesfully provided that the ST:F or ST:M
  442.     options of QEMM is not setted.
  443.  
  444.     GAMETOOLS can not be runned under DV. If you load DV after GAMETOOLS,
  445.     GAMETOOLs will be disable when DV is running and will be reenable
  446.     after DV is finished.
  447.  
  448.     GAMETOOLS can be runned in WINDOWS 3.1 dosprompt provided that the
  449.     the EMS Memory locked option in advanced options of the DOSPRMPT.PIF
  450.     is setted. Under WINDOWS 3.1, the hardware breakpoint function can
  451.     not function properly.
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462. Registering GAMETOOLS:
  463.  
  464.     GAMETOOLS is released as a shareware program. This method gives the
  465.     user the opportunity to evaluate the program before actually
  466.     registering the software. If after a one month evaluation period you
  467.     determine that GAMETOOLS meets your needs, you are required to
  468.     register your copy of GAMETOOLS. After registration you are free to
  469.     use it and will get free upgrade for one year.
  470.     To register your copy of GAMETOOLS, complete the registration form
  471.     that is distributed with the package, include your payment and mail to
  472.  
  473.         [Gametools Registration],
  474.         P.O. Box 80044,
  475.         Cheung Sha Wan Post Office,
  476.         Hong Kong.
  477.  
  478.     When your registration form is processed you will be mailed or e-mailed
  479.     a password to unpack GT3-R.ARJ and an individual serial number that
  480.     allow you to register EMS version of GAMETOOLS which need 11k
  481.     conventional memory only so that you have more rooms to load other
  482.     programs. You can also get an updated version of UP.EXE in GT3-R.ARJ
  483.  
  484.     You can contact the author through e-mail:
  485.  
  486.         Internet address:
  487.                 cs_wwkin@uxmail.ust.hk
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508. Discliamer:
  509.  
  510.     GAMETOOLS is supplied as is.  The author disclaims all warranties,
  511.     expressed or implied, including, without limitation, the warranties
  512.     of merchantability and of fitness for any purpose.  The author
  513.     assumes no liability for any damages, direct or consequential, which
  514.     may result from the use of, or inability to use GAMETOOLS.
  515.  
  516.