Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create basic_tutorial.md #2338

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

kkruiliu
Copy link

@kkruiliu kkruiliu commented Sep 12, 2022

The tutorial on cheat engine: (by Kerui Liu)

Since the tutorial web page of this project is down(https://forum.cheatengine.org/viewtopic.php?t=26540), this document will give a detailed tutorial of the cheat engine (which will be called CE in the rest of the file) with a specific example.

(All demonstrations will be presented with the 7.4 version. )

Interface:

The interface of the CE would like this.
image
image

The icon in the left top corner is where you should start interacting. It will lead you to a process list that you are currently running. By selecting the program or game you want to modify, you can start to "hack" it. The example, Minecraft will be taken as an example.

To modify the existing data:

image
image
Assuming I want to modify the number of dirt, the first step is simply putting the number of dirt cubes in the value section, then doing the first scan. The CE will scan all the memory addresses of the application, then list all addresses where the value is 10. The output of the first scan usually will give a large number, it's impossible we test it one by one, so users may need to do multiple scans by changing the number of the dirt cubes.

image
image

After a few times scans, there only a few addresses should be left. There are various situations that may happen:

Please noted that sometimes the application will not just store the data of an item in one address, it could be stored in multiple addresses for various purposes. So, the situation that multiple address values will stay the same even if the user is changing the value will occur. The solution is by examining the address one by one.
In most applications, programmers will tend to plan a certain section of memory for certain purposes, which means the addresses that are used to store the number of items will have a similar pattern, for example, the address of the poppy is BA7CDA8C, accordingly the user can assume that the address 9F50D59C is the address of dirt cube.

The second situation is shown in the picture and it's what the user will commonly see. In this situation, we can see there are three addresses left after scans. However, two of them are in red font. This is because they are in a dynamic motion, as a result of it the value will keep changing. So, when the user is doing the scan, they should always wait a few seconds to see if any of them is dynamic (yes, they will not instantly turn red after a scan) before they start the new scan.
Finally, simply right-click on the address and select the "change value of selected address" option to modify it.

How do you implement testing before you change the value of the address if you are not sure if it's the correct address?

image
image

An easy way to test if you are locating the correct address is by examining the memory region. Suppose we don't know

the address of poppy, let's right-click the address BA7CDA8C and select "browse this memory region". A memory viewer will pop out and automatically locate the targeted address. The first section in the address is 5A, which is the hexadecimal of 90, and the number of poppies is 90. The address is proven that is used for poppies

How to do magic out of nothing?

This is not recommended because it may cause the application to crash, and is usually hard to implement.

To get something you don't have, you need to know the "ID" of the item, for example, the "ID" of the poppy is 40 (in hex:28), which you have a rare chance to find on the internet(Even you do, there is a high chance the game versions are not same). Then, you need to empty your backpack (or any form of storage) in the game to avoid crash (if you generate a new item in an address that already has an item, the game crashes). Finally, enter the ID and wish number in the correct section.

Author: Kerui_Liu

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant