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 


idle curiosity about cheat engine

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
sired22
Cheater
Reputation: 1

Joined: 22 Aug 2006
Posts: 36

PostPosted: Fri Jun 19, 2009 3:48 pm    Post subject: idle curiosity about cheat engine Reply with quote

I was just wondering but in layman's terms how does the pointer scanner in cheat engine work? I know its job is to find pointers but how does it go about doing that job?
Back to top
View user's profile Send private message Yahoo Messenger
Dark Byte
Site Admin
Reputation: 471

Joined: 09 May 2003
Posts: 25833
Location: The netherlands

PostPosted: Fri Jun 19, 2009 4:53 pm    Post subject: Reply with quote

there are 2 approaches
1: 'default' (or at least the first one I used) will scan all writable static base address and follow all possible pointer paths in the given region if they point to the final address. (detecting pointer values and following the path up to the given level)
If the final address is detected, it'll add it to the list and continue

2: Reverse pointer scan: It will take the given address and subtract the offset from that. That it'll scan all memory addresses that contain a value ranging from (address-offset) to address. If it finds an address containing that value, it'll then do another range scan for that (address-offset) to address and repeats until the max level has been reached, or it encounters a static address.
If it's a static base, it'll save the path to the list and continue


When the scan is done you'll have a huge .ptr file (results.ptr) which you can then do a rescan on when the game has been restarted to filter the wrong pointer paths out. (the rescan usually takes off 99.9999% of all the pointers it found in the initial scan, so make sure your list is big enough, a scan for a level smaller than 4 or a structsize less than 2kb is usually too small to give a proper path)

edit: for those that don't get it, structsize just means "The biggest offset value possible"

_________________
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
Back to top
View user's profile Send private message MSN Messenger
sired22
Cheater
Reputation: 1

Joined: 22 Aug 2006
Posts: 36

PostPosted: Fri Jun 19, 2009 5:05 pm    Post subject: Reply with quote

isn't there a better way? like tracing the asm that writes or reads to it backwards? kind of like break and trace but it would put the breakpoint 1 instruction above and repeat that every time its triggered until it hits something that loads from a static address?

then again thinking about it i guess not because it could read from a static and go into a loop never needing to reread it.
Back to top
View user's profile Send private message Yahoo Messenger
Dark Byte
Site Admin
Reputation: 471

Joined: 09 May 2003
Posts: 25833
Location: The netherlands

PostPosted: Fri Jun 19, 2009 5:47 pm    Post subject: Reply with quote

the pointer scan is mainly for situations where you can't debug or inject code
_________________
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
Back to top
View user's profile Send private message MSN Messenger
sired22
Cheater
Reputation: 1

Joined: 22 Aug 2006
Posts: 36

PostPosted: Sat Jun 27, 2009 12:32 pm    Post subject: Reply with quote

I thought i would reuse this thread for my next question instead of making another.

Now i know what a dynamic address is and a static address but how doe's cheat engine's pointer scan know?

you said
" If it finds an address containing that value, it'll then do another range scan for that (address-offset) to address and repeats until the max level has been reached, or it encounters a static address. "

well if it is just checking the memory address's for values how doe's it know a static address from a dynamic one?
Back to top
View user's profile Send private message Yahoo Messenger
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites