Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Cheat Engine Forum Index
PostGo back to topic
Dark Byte
Site Admin
Reputation: 457
Joined: 09 May 2003
Posts: 25262
Location: The netherlands

PostPosted: Sun May 24, 2009 5:16 pm    Post subject: FAQ: How to use a pointer

Because this question comes back almost every week I'll try to explain how to work with pointers

I'm not going to tell you how to code it, but I will tell you what you have to do

Let's start with something easy, a level-1 pointer

you have a pointer where people say : 0048123C+10C , first off, this notation is wrong, the actual notation should be [0048123C]+10C, anyhow,
to get to the real address you have to READ the "4 BYTES" at 0048123C as a value, and add the value 10C to it. (Don't forget that the notation I use is in hexadecimal, even for offsets)
Now interpret this new value as an address, and you have the address that actually contains the address you need. Using this address you can now Write or Read from the specific item the pointer points to.


Now a little bit more complicated, a level-8 pointer:

Let's say you now have a pointer as noted down in ce:
Code:

address        offset
xxxxxxxx       108
xxxxxxxx       1c
xxxxxxxx       0
xxxxxxxx       118
xxxxxxxx       2c4
xxxxxxxx       34
xxxxxxxx       c0
0049aadc       16

Note that an alternative method of writing this down would be:
[[[[[[[[0049aadc]+16]+c0]+34]+2c4]+118]+0]+1c]+108

So, first read the "4-Bytes" value at 0049aadc
Now add to that result the first offset (16)
then interpret the new value as an address and read the 4 Bytes at that address
Add to that the 2nd offset (c0) to the value you just read
Again, interpret the value as address and read the 4 bytes there
and add the 3th offset (34) to the new value
Read 4 bytes
Add 4th offset (2c4)
Read 4 bytes
Add 5th offset (118)
Read 4 Bytes
Add 6th offset (0) Yes, 0 can be an offset, it's nothing special
Read 4 Bytes
Add 7th offset (1c)
Read 4 bytes
Add 8th offset (108)
You now finally have the final address.
This final address points to the address you want to modify. E.g add +10, or freeze(write in a in a loop), or just simply read out for stats

I hope this clears up the most common questions from people trying to add pointers to their trainer

(also check out http://forum.cheatengine.org/viewtopic.php?p=5280115#5280115 for help on how to deal with modulename+offset notations)
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping


Last edited by Dark Byte on Mon Dec 05, 2011 9:16 am; edited 1 time in total
Back to top
View user's profile Send private message MSN Messenger
Post reviews:   Approve 1
Author Review
megakoresh
Review: Approve
Post reference:
ReviewPosted: Wed Feb 23, 2011 1:23 pm

Thats so simple! Very nice. It does not exactly help to use the pointer, but it is the best explanation of how it works I have ever seen. Thanks!
Back to top
View user's profile Send private message
Display:  
Cheat Engine Forum Index


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites