View previous topic :: View next topic |
Author |
Message |
AmbassadorTherin How do I cheat? Reputation: 0
Joined: 20 Sep 2014 Posts: 6
|
Posted: Sat Sep 20, 2014 12:41 am Post subject: Games With Non-Static Pointers or Addresses |
|
|
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 |
|
|
Dark Byte Site Admin Reputation: 458
Joined: 09 May 2003 Posts: 25296 Location: The netherlands
|
Posted: Sat Sep 20, 2014 4:22 am Post subject: |
|
|
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 |
|
|
AmbassadorTherin How do I cheat? Reputation: 0
Joined: 20 Sep 2014 Posts: 6
|
Posted: Sat Sep 20, 2014 2:02 pm Post subject: |
|
|
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 |
|
|
AmbassadorTherin How do I cheat? Reputation: 0
Joined: 20 Sep 2014 Posts: 6
|
Posted: Mon Sep 22, 2014 3:05 am Post subject: |
|
|
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 |
|
|
Dark Byte Site Admin Reputation: 458
Joined: 09 May 2003 Posts: 25296 Location: The netherlands
|
Posted: Mon Sep 22, 2014 3:30 am Post subject: |
|
|
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 |
|
|
AmbassadorTherin How do I cheat? Reputation: 0
Joined: 20 Sep 2014 Posts: 6
|
Posted: Mon Sep 22, 2014 2:43 pm Post subject: |
|
|
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 |
|
|
AmbassadorTherin How do I cheat? Reputation: 0
Joined: 20 Sep 2014 Posts: 6
|
Posted: Tue Sep 23, 2014 3:15 am Post subject: |
|
|
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!
|
|
Back to top |
|
|
Dark Byte Site Admin Reputation: 458
Joined: 09 May 2003 Posts: 25296 Location: The netherlands
|
Posted: Tue Sep 23, 2014 4:54 am Post subject: |
|
|
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 |
|
|
AmbassadorTherin How do I cheat? Reputation: 0
Joined: 20 Sep 2014 Posts: 6
|
Posted: Tue Sep 23, 2014 12:45 pm Post subject: |
|
|
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.
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 |
|
|
a3f How do I cheat? Reputation: 0
Joined: 22 Aug 2016 Posts: 2
|
Posted: Mon Aug 22, 2016 7:21 am Post subject: |
|
|
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 |
|
|
Dark Byte Site Admin Reputation: 458
Joined: 09 May 2003 Posts: 25296 Location: The netherlands
|
Posted: Mon Aug 22, 2016 8:15 am Post subject: |
|
|
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 |
|
|
a3f How do I cheat? Reputation: 0
Joined: 22 Aug 2016 Posts: 2
|
Posted: Mon Aug 22, 2016 3:43 pm Post subject: |
|
|
I see. Thanks!
|
|
Back to top |
|
|
|