Stealing the day to change the day CD version of the game perfect conversion hard disk version method


Computer gamers have encountered such problems, many games still need to insert the CD when running (this is also true in the case of "complete installation"!?). If the disc is accidentally lost or the optical drive fails, do you have no way to deal with the installed game? You may choose to download the CD-free patch from the master, but not every CD-ROM game can find or use such a patch. This article will let you play the role of a master, to create the perfect hard disk game.

Special statement: The purpose of this article is only to enable users who purchase genuine games to play games without wearing the CD-ROM drive. Some of the game names are hidden in the following modified examples.

Not every CD version of the game can be converted to a hard disk version. Here are some of the game types and features that can be modified, and the actual modification process is given.

Combat 1: Remove Disc Detection

Game Features: All files in the game have been installed on the hard drive, and the disc is only detected for copyright protection purposes at the beginning of the game.

Modification principle: There is a code for detecting the disc at the beginning of the game program. The simplest detection method is to read a specific file from the disc. If it is not read, the prompt box will pop up and the game will be forced to exit. If you read And confirmed as the game disc, the program jumps to the beginning of the game.

Modification difficulty: ★★★

Required tools: W32DASM, RTA (original address is no longer available, it is understood that RTA and Hiew, 010Editor are hex editors). : The above two software are not provided by PConline, please pay attention to security)

Step 1: Download W32DASM and extract it, run W32dsm8.93+.exe in the decompression directory. Select the W32DASM main interface menu “Disassembler→Open File to Disassemble”, and select zweipet.exe in the “××物语” installation directory in the file selection box.

Step 2: Select the menu "Functions→Imports" (the function → input table), there is a list box in the pop-up window to detail the API functions used in the program. Enter "GetDriveType" (without quotes) in the text box above the window and click on the "Search" button on the right. The line in the list box below is selected, then double-click on it (see Figure 1).

Figure 1 Find "GetDriveType"

Tip: API is the function interface of the program calling system function. For example, if the program wants to detect the CD, you must use the GetDriveType function to get the device type of the drive letter. . So if you find the location of the GetDriveType function in the program, you will be able to find the disc detection code nearby.

Step 3: In the code display box of the W32DASM main interface, highlight the call location of the GetDriveType function, and pull the code box down a bit to see the disc detection code (see figure 2). The blue number on the far left of the code box is the location of the code. As in this article, the location of GetDriveType found in zweipet.exe is 0004843, and the location of the disc detection code is at 004088BD. The following is a brief summary of the code:

Figure 2 The disc detection code for the "Insert Disc"

  • :004088BD mov eax,dword ptr[esp+14]
  • :004088C1 test eax, eax //Check if there is a disc
  • :004088C3 jnz 004088DB //There is a disc that jumps to the 004088DB position (ie the game start position), no disc does not jump
  • :004088C5 push 00000000
  • :004088C7 push 00428934
  • :004088CC push 00428919
  • :004088D1 push 00000000
  • :004088D3 call dword ptr[004233EC] //Pop up a prompt window "Please insert the XX game disc"
  • :004088D9 jmp 00408933 //The program turns to the end of the code, which is to force the game to exit (see Figure 3)

    < Br> Figure 3:004088D3 position code will pop up this prompt box

    Step 3: You can see the program direction at 004088C3 (is to continue the next line of code or jump to 004088DB) Game), if you can make the program jump to 004088DB without judgment, it is equivalent to skipping the disc detection. Close W32DASM, open the RTA you just downloaded, select the menu command "File→Open File", and also open zweipet.exe. The RTA interface immediately displays the assembler code for zweipet.exe. The leftmost red number is the code position, the blue hexadecimal number on the side is the machine code of the line code, and the yellow text on the right side is the assembly code. Find the location 004088C3 to be modified, this assembly code is "JNZ SHORT 4088DB", modify it to "JMP SHORT 4088DB" (without quotes, machine code is EB16).

    (before modification FIG 4)

    (modified after FIG. 5) and
    you know --JNZ JMP What means?
    JNZ is a conditional branch instruction, which first detects a condition, and if it is satisfied, jumps, otherwise it continues to execute the next line of code. JMP is an unconditional branch instruction that jumps directly to the location that needs to be transferred without detecting any conditions.
    Step 4: Select the menu command "File→Save File" to save the modified results. Re-run "X× Story", there is no longer annoying "Please insert the game disc of XX Story" prompt box, you can play without CD!
    Combat 2: Transfer CD files to hard disk
    Game features: There are only some game files on the hard disk, and the path of the copied CD files is recorded in the file or the registry.
    Modification principle: Copy the content that needs to be extracted from the CD to the local hard disk, and modify the path record to make the game program read from the local hard disk.
    Typical game: "××Hospital"
    Modification difficulty: ★★
    Required tools: Notepad
    Step 1: "××Hospital" even if you select "Full Installation" during the installation process In the runtime, it is also necessary to insert a disc, and after inserting the disc, there is a large amount of data read during the game, so it is judged that some of the game files are not installed on the local hard disk. Insert the game disc, browse the files below and compare it with the files in the game installation directory on the hard disk. It is found that the number of files in several directories is different, but the disc has the same directory structure as the hard disk.
    Step 2: Copy the missing game files from the CD to the game installation directory on the hard disk ("Overwrite" is available), run the game again and find that the game CD is still prompted to be inserted. Because the game program does not know that you copied the missing game files to the hard disk, still look for the files on the CD. So how can you let the game program know? We need to modify the "memory" of the game program, looking for the game settings file (usually the file name contains "Config", "cfg", "settings" and other keywords), such as the game's settings file for the game Install Hospital.Cfg in the installation directory, open this file with "Notepad", and change the path after "INSTALL_PATH=" to the installation path of your game (that is, the path of the missing file that was copied just copied from the hard disk. After this example is modified The line is like "INSTALL_PATH=C:\\Program Files\\Bullfrog\\Hospital\\"), save and close the file.
    Step 3: Run the game again and find that you no longer need to insert the disc.
    Summary of the modification process
    After giving the above examples, we summarize the modification steps in a more general way.
    First of all, through the file comparison and CD-ROM reading time to determine whether the game type is A or B.
    A. Only detect discs, all game files are installed on the hard disk.
    Step 1: Use W32DASM to view the assembler code of the game program file and find out the code position of the disc detection part.
    Step 2: Analyze this code to find the location of the conditional branch instruction JNZ.
    Step 3: Edit the game program file with RTA, check the location of JNZ just recorded, and modify it to JMP (unconditional branch instruction).
    Tip: The above situation is only used for games without further encryption. Some games use the "flower instruction" or "dynamic encryption" technology in the disc detection code, which cannot be modified by this method. //This article comes from the computer software and hardware application network
    B. The game files in the hard disk are incomplete and need to be read from the CD.
    Step 1: Compare the number of game files on the hard disk with the number of files on the CD, copy the missing files from the hard disk to the corresponding location in the game installation directory (also copy to other directories and at the path of the third step) Make the appropriate changes, but for compatibility reasons, it is highly recommended to copy to the game installation directory).
    Tip: There are some games that encrypt and hide files. After modifying the path with this method, a message like "missing files" will appear.
    Step 2: Find the setting file (or registry location) of the game to store the path of the CD file according to the feature recognition method given in the article.
    Step 3: Edit the settings file and change the file storage path to the game installation directory.

Copyright © Windows knowledge All Rights Reserved