A question about gamehacking.

Memory scanning, code injection, debugger internals and other gamemodding related discussion
Post Reply
chaosjr7
Noobzor
Noobzor
Posts: 8
Joined: Thu Jun 20, 2019 2:53 am
Reputation: 0

A question about gamehacking.

Post by chaosjr7 »

Can anyone teach me to, take a specific Assembly Address's Register and and label it so I can utilize it as either a readable address or a Pointer Variable, I want to take a Register like EAX at Address X and make a ?variable?, like "PlayerAmmo1" so that "PlayerAmmo1"= the Value of EAX at Address X.

Example
Address X = 412014 the Code at that location is "mov ecx, [eax]"
eax= a Pointer address I want to track using Assembly by assigning the Name "PlayerAmmo1" so that PlayerAmmo1's Value equals eax's Value at Address X..

How do I do it? Can it be done currently with either cheat engine or artmoney v8.08.4 PRO version...
I hope someone can teach me to do this.. Thanks for the time, and I hope to learn how soon.

User avatar
happyTugs
Table Makers
Table Makers
Posts: 127
Joined: Mon Apr 20, 2020 1:01 am
Reputation: 146

Re: A question about gamehacking.

Post by happyTugs »

The following is just a general idea.

Code: Select all

[ENABLE]

//--Snippet Start

label(PlayerAmmo1) // The word 'PlayerAmmo1' is now to be used as a local symbol for some piece of data.
registersymbol(PlayerAmmo1)  // Add the symbol, 'PlayerAmmo1', to the user-defined symbol list, making the symbol accessible across Cheat Engine.

newmem:
mov ecx,[eax] // I assume that the content of eax is the address of the player's ammo.
mov [PlayerAmmo1],eax // Therefore, copy the content of eax to the memory address assigned to 'PlayerAmmo1'.
jmp return

/* 
The following instruction is optional.
align 04 90 // Aligns the following memory address to a 4-byte boundary padded with byte 0x90 (nop).
*/

PlayerAmmo1: // Memory address labeled 'PlayerAmmo1'
resb 4 // Reserve 4 bytes to accommodate the 4-byte content of eax (in this case, the content of eax is a 4-byte length address, or a DWORD address). 
       // dd 0 (Declare DWORD of value 0), can also be used.

//--Snippet End

[DISABLE]

//--Snippet Start

unregistersymbol(PlayerAmmo1) // Remove the symbol, 'PlayerAmmo1' from the user-defined symbol list.

//--Snippet End
Afterwards, to access the symbol, or the memory address, of 'PlayerAmmo1', simply add a new address, tick pointer, and for the address, type PlayerAmmo1.

If you don't quite understand, perhaps read through the below thread.
https://forum.cheatengine.org/viewtopic.php?t=588737

You can also ask questions at the Cheat Engine Forums if you haven't done so already.
https://forum.cheatengine.org/index.php

Post Reply

Who is online

Users browsing this forum: No registered users