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 


Games With Non-Static Pointers or Addresses

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
AmbassadorTherin
How do I cheat?
Reputation: 0

Joined: 20 Sep 2014
Posts: 6

PostPosted: Sat Sep 20, 2014 12:41 am    Post subject: Games With Non-Static Pointers or Addresses Reply with quote

Hello all,

Recently, I have become interested in trying to automate gameplay for various games, particularly for online games. The thing with a good online game, is that it usually has non-static/dynamic addresses or pointers.

I know it must be possible to somehow find something in the memory that gives the coder something to use in their script that allows them to do stuff like "read the current experience points", or "find the object on the cursor".

I've tried a bit of trial-and-error with an online game whose memory addresses for experience and whatnot, change every time I restart the game.

Typically, I will scan for my current experience, get more experience, and then scan for that, and I will see two addresses. One whose offset is 34, and one whose offset is 980. I'll do the typical "scan for value of pointer in hex" thing, but from there, I get thrown for a loop due to my lack of knowledge. I haven't been able to find much on this, but I'm sorry if it's been discussed to death.
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 457

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

PostPosted: Sat Sep 20, 2014 4:22 am    Post subject: Reply with quote

Non static pointers do not exist
There is ALWAYS one static point of origin to the location you need, (that includes thread local storage and treadstack, not just modules) it just may take 100 pointers inbetween to find it, or incredibly huge pointer offsets,.
It might also be that the path inbetween the base and the target is obfuscated (encrypted) but there is always a static base

Have you ever tried a pointerscan? Looking at the offset of 980 i can already tell you that the default config will not find it (structsize 2048 only goes to 800) so try a structsize of 3072 or even 4096 and then try bigger levels and structsizes as you try and find nothing

_________________
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
AmbassadorTherin
How do I cheat?
Reputation: 0

Joined: 20 Sep 2014
Posts: 6

PostPosted: Sat Sep 20, 2014 2:02 pm    Post subject: Reply with quote

Dark Byte wrote:
Non static pointers do not exist
There is ALWAYS one static point of origin to the location you need, (that includes thread local storage and treadstack, not just modules) it just may take 100 pointers inbetween to find it, or incredibly huge pointer offsets,.
It might also be that the path inbetween the base and the target is obfuscated (encrypted) but there is always a static base

Have you ever tried a pointerscan? Looking at the offset of 980 i can already tell you that the default config will not find it (structsize 2048 only goes to 800) so try a structsize of 3072 or even 4096 and then try bigger levels and structsizes as you try and find nothing


Thanks for replying.

I have tried a couple of pointerscans because I saw someone recommend it, but I wasn't sure what to do after I scanned. Also, does it change anything if this game was programmed in C++ and uses std::mutex and hash_maps?
Back to top
View user's profile Send private message
AmbassadorTherin
How do I cheat?
Reputation: 0

Joined: 20 Sep 2014
Posts: 6

PostPosted: Mon Sep 22, 2014 3:05 am    Post subject: Reply with quote

So let's say I do a pointer scan and get millions of pointers? I can't begin to imagine what to do next.
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 457

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

PostPosted: Mon Sep 22, 2014 3:30 am    Post subject: Reply with quote

Restart the game. Find the address again, and then use that ptr file to rescan for the new address

Also, just to be sure since you mentioned online game, does the address you've found actually affect gameplay? Because if it doesn't it's not going to work.
Just mentioning this as it happens frequently that people wrongly assume pointers will make non changeable addresses work

_________________
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
AmbassadorTherin
How do I cheat?
Reputation: 0

Joined: 20 Sep 2014
Posts: 6

PostPosted: Mon Sep 22, 2014 2:43 pm    Post subject: Reply with quote

Dark Byte wrote:
Restart the game. Find the address again, and then use that ptr file to rescan for the new address

Also, just to be sure since you mentioned online game, does the address you've found actually affect gameplay? Because if it doesn't it's not going to work.
Just mentioning this as it happens frequently that people wrongly assume pointers will make non changeable addresses work


I'm not finding the pointer or address to modify it, I want it so that I can make a script to print out the value of the address or pointer.

The one in question is of the current XP. If I change that address, it actually changes the graphics of the XP bar and the number, but it isn't permanent of course.
Back to top
View user's profile Send private message
AmbassadorTherin
How do I cheat?
Reputation: 0

Joined: 20 Sep 2014
Posts: 6

PostPosted: Tue Sep 23, 2014 3:15 am    Post subject: Reply with quote

Dark Byte wrote:
Restart the game. Find the address again, and then use that ptr file to rescan for the new address

Also, just to be sure since you mentioned online game, does the address you've found actually affect gameplay? Because if it doesn't it's not going to work.
Just mentioning this as it happens frequently that people wrongly assume pointers will make non changeable addresses work


An update: I've pointer-scanned and rescanned multiple times but the pointer count won't go past 19.

At least it is better than 30 million! Laughing
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 457

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

PostPosted: Tue Sep 23, 2014 4:54 am    Post subject: Reply with quote

So what is the problem?
You have found multiple pointers that stay valid during multiple different runs. It's not like there can be only one pointer, so pick one you like

You might be able to reduce it more by trying it on another computer with a different windows version, but don't expect only 1 result

_________________
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
AmbassadorTherin
How do I cheat?
Reputation: 0

Joined: 20 Sep 2014
Posts: 6

PostPosted: Tue Sep 23, 2014 12:45 pm    Post subject: Reply with quote

Dark Byte wrote:
So what is the problem?
You have found multiple pointers that stay valid during multiple different runs. It's not like there can be only one pointer, so pick one you like

You might be able to reduce it more by trying it on another computer with a different windows version, but don't expect only 1 result


I know. Very Happy

Now that I've got this pointer thing down I have to get to work on the program itself. Thanks and cya!
Back to top
View user's profile Send private message
a3f
How do I cheat?
Reputation: 0

Joined: 22 Aug 2016
Posts: 2

PostPosted: Mon Aug 22, 2016 7:21 am    Post subject: Reply with quote

Dark Byte wrote:
Non static pointers do not exist
There is ALWAYS one static point of origin to the location you need


What about pointers that have automatic storage duration, e.g. on main's stack or contained in a register during the program's whole lifetime?
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 457

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

PostPosted: Mon Aug 22, 2016 8:15 am    Post subject: Reply with quote

There is always a path to it, else it's be a lost memory object.

even when the base lies in the stack
e.g:
Code:

void main()
{
  CGame game=new CGame()
  game->Run()
}


the variable game will be in the stack, but , the address of game will not change, until Run() returns and main closes

in CE you can access those addresses by using the THREADSTACK# variable (0 for mainthread) and then decrease the address with the offset from the stack bottom.

(the pointerscanner can find those)

--
even when a compiler would put game in a register, as soon as it calls a function, it has to store the value of the register on the stack eventually. That address can then be used as a pointer. (a bit higher up the stack, but usually still close to the start)

_________________
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
a3f
How do I cheat?
Reputation: 0

Joined: 22 Aug 2016
Posts: 2

PostPosted: Mon Aug 22, 2016 3:43 pm    Post subject: Reply with quote

Dark Byte wrote:


I see. Thanks!
Back to top
View user's profile Send private message
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