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 


Pointers change in between levels

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
mouser
Advanced Cheater
Reputation: 0

Joined: 08 Mar 2015
Posts: 50

PostPosted: Mon May 04, 2015 3:25 pm    Post subject: Pointers change in between levels Reply with quote

Finally came back around experimenting more with cheat engine and Oddworld New N Tasty.

I thought I was ready to go, having set up pointers and scripts for camera manipulation. Rocksolid pointers as far as I can tell.

So I progressed through the first level and at a certain point when I step through a certain door, all values disappear, question marks everywhere and pointers useless.

I quit and restart the game from the beginning, pointers are back, I progress to that point again... gone.

So I do the same work again, pointerscanning for my camera addresses, restarting the game a couple of times. Now I have a rock solid pointer for that section of the level. One for the first section and one for the next... now this will get messy if it keeps changing every 10 minutes playing the game. Every area could have it's own unique pointers. Can't do pointerscans for all these different areas.

I'm thinking about a method that would spare me the work. I have a script with mono descriptions of addresses that are writing to these pointers. The addresses of these descriptions are not changing when the pointers change. I checked this by finding out what writes to the new pointers, it's exactly the same that writes to the old pointers.

I maybe stop makins sense at this point?

So, AOB scanning pointers. I somehow don't think this will work here? Before I go and try that I want to know what you people think about this. If you have pointers that change every other area/level, what's the best solution to that? Is there an easy way or am I doomed in rescanning every section?
Back to top
View user's profile Send private message
Fresco
Grandmaster Cheater
Reputation: 4

Joined: 07 Nov 2010
Posts: 600

PostPosted: Mon May 04, 2015 3:53 pm    Post subject: Reply with quote

Do the addresses change too?
Or it's just that the pointers that stop pointing at the correct address ?

For example:
If 0x00abcdff is the address of camera x, after the pointers stop working, is 0x00abcdff still the address of camera x or does it change?

If not, just do a code injection at that point in the code where the address gets accessed and calculate the pointer trough assembly, after that if the pointer is valid store it's value under a registered symbol label.
add the label to the table.

_________________
... Fresco
Back to top
View user's profile Send private message
mouser
Advanced Cheater
Reputation: 0

Joined: 08 Mar 2015
Posts: 50

PostPosted: Mon May 04, 2015 4:07 pm    Post subject: Reply with quote

It's completely different I think.

Beginning of the game:

Camera X:

Code:
"NNT.exe"+009E1EEC = 0403806C


Further down the level Camera X turns into:

Code:
"NNT.exe"+009E1F3C = 302297A8


The only part that is the same is the Instruction that writes to these adresses.

- A second try:

copy and pastet the pointers into notepad++

This

Code:
RealAddress="1997BEE0"


becomes

Code:
RealAddress="19539D48"
Back to top
View user's profile Send private message
Fresco
Grandmaster Cheater
Reputation: 4

Joined: 07 Nov 2010
Posts: 600

PostPosted: Mon May 04, 2015 4:25 pm    Post subject: Reply with quote

Then your only bet or hope is that the code that writes to camera x only writes to one address ( i.e. camera x ). However if the code writes to more than one addresses you will have to dissect data/structures and find a way to distinguish between the camera x you want and other camera x's.
_________________
... Fresco
Back to top
View user's profile Send private message
Rissorr
Master Cheater
Reputation: 3

Joined: 17 Sep 2013
Posts: 273
Location: Israel!

PostPosted: Mon May 04, 2015 6:15 pm    Post subject: Reply with quote

Try to fetch base address from any code that accesses only to yours camera
Back to top
View user's profile Send private message
mouser
Advanced Cheater
Reputation: 0

Joined: 08 Mar 2015
Posts: 50

PostPosted: Tue May 05, 2015 7:28 am    Post subject: Reply with quote

DogeMan wrote:
Try to fetch base address from any code that accesses only to yours camera


Forgive my ignorance, but what would that be good for? You mean checking what accesses the camera, finding the base addresses of that? (I'm lacking imagination a lot of times;)
Back to top
View user's profile Send private message
Fresco
Grandmaster Cheater
Reputation: 4

Joined: 07 Nov 2010
Posts: 600

PostPosted: Tue May 05, 2015 7:47 am    Post subject: Reply with quote

codes that access/write look like this [base+offset] ( [register+offset] e.g. [eax+8] )

reg (register) is the base address of a structure, off (offset) a number that you add to the base. base+off = camera address.

now, there may be only one code that write to all [reg+off]'s (i.e. camera) but there may be only a specific code that only writes to one reg ( i.e. a code that only writes to the base address of the camera you're interested in )

which means that if you find said code, you then can be able to distinguish between the many cameras just by injecting at the place where the code read only from the base of the camera you're interested in, then you can add to that base the offset and find the camera.

e.g. [eax+4] < one code writes to 20 addresses.
[eax] < one code accesses only 1 address.

you then inject at [eax] and then add 4 to eax to find the 1 address in the 20 you're interested in.

Some developers do that. they have methods like "getPlayerCameraBase()"
and" getObjectCameraBase( Object o )"

The one with the parameter "Object o" writes to all 20 camera while the one specific for the player only writes/reads to the player camera.

It looks like your game uses the parameter one.

_________________
... Fresco
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking 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