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 


Making Pointer "update-proof" ?

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

Joined: 25 Apr 2014
Posts: 71
Location: Germany

PostPosted: Tue Jan 27, 2015 5:15 pm    Post subject: Making Pointer "update-proof" ? Reply with quote

Hello there.

I have a little question.
I know how to work with pointers and Valuefinding.
I have a table full of working pointers for a Text based game.

Is there a way to make these pointers "update-proof" ?
They need only to show the value correctly, even if there has been a new update of the game. Nothing more.

Will be gladly looking into tutorials on that matter, if provided.

Thanks in advance Smile
Back to top
View user's profile Send private message
Pingo
Grandmaster Cheater
Reputation: 8

Joined: 12 Jul 2007
Posts: 571

PostPosted: Tue Jan 27, 2015 6:01 pm    Post subject: Reply with quote

The way I do it, not in asm but the idea is the same.

Find out which instruction accesses the address you want.
Find a usable aob pattern that works with previous version, including the current version so I can find that instruction address no matter which version.
Copy the value of the register in memory (codecave).
Then just read it like any other address.

That's the way I do it, someone might know an easier way..
What text based game?

_________________
Back to top
View user's profile Send private message
ArchAngelrc
Advanced Cheater
Reputation: 1

Joined: 25 Apr 2014
Posts: 71
Location: Germany

PostPosted: Wed Jan 28, 2015 4:01 am    Post subject: Reply with quote

Pingo wrote:

Find out which instruction accesses the address you want.


In each version of the game, it has always been
"0040AF8C - 88 4C 02 03 - mov [edx+eax+03],cl"
for each pointer. I assume you mean this instruction ?

Quote:
Find a usable aob pattern that works with previous version, including the current version so I can find that instruction address no matter which version.

So, look at that insctruction in the memory viewer, and find a working aob pattern ?

Quote:
Copy the value of the register in memory (codecave).

Now this, i dont understand. Could you clarify that a bit further ?
what is codewave ? and what value ?

Quote:
Then just read it like any other address.

But what is the point of finding the instruction exactly ?
How do i easily update / search with that my other pointers ?
Sorry if i do not understand it.

Game is called trap quest, but it's an adult erotic game.
It's nsfw, so be warned.
Back to top
View user's profile Send private message
Pingo
Grandmaster Cheater
Reputation: 8

Joined: 12 Jul 2007
Posts: 571

PostPosted: Wed Jan 28, 2015 10:21 am    Post subject: Reply with quote

Here is an example CT.

You can download it and see what is happening in memory using CE, might be easier for you to understand that way.
The file contains a CE script and a little test app i made to show the script working.

Screens before and after the script is enabled
Before


After

_________________
Back to top
View user's profile Send private message
ArchAngelrc
Advanced Cheater
Reputation: 1

Joined: 25 Apr 2014
Posts: 71
Location: Germany

PostPosted: Wed Jan 28, 2015 11:30 am    Post subject: Reply with quote

First off: Huge thanks for your answers!

Looked at your script, and tested it with your table.
Problem is, that i do not understand the basic logic behind the script and dynamic pointer part.
Dunno why you look for a certain thing and how, what you do with it and why, etc...

It's propably better for me to learn the own CE tutorials from dark byte again, and after that at some beginning script things.

thanks again for your answers though, maybe i can learn from them when i understood the logic Razz
Back to top
View user's profile Send private message
Pingo
Grandmaster Cheater
Reputation: 8

Joined: 12 Jul 2007
Posts: 571

PostPosted: Wed Jan 28, 2015 11:42 am    Post subject: Reply with quote

Someone might know an easier way post it up here for you.
If I think of an easier way, I'll post it.
That's the method I use but not with cheat engine, I always code mine from scratch using C#.

How about the pointer offsets? Are they always the same?
If the only thing that changes is the base address (someting.exe+123),
you might beable to just scan for the base. I've done that a few times but it isn't always possible.

_________________
Back to top
View user's profile Send private message
ArchAngelrc
Advanced Cheater
Reputation: 1

Joined: 25 Apr 2014
Posts: 71
Location: Germany

PostPosted: Wed Jan 28, 2015 12:07 pm    Post subject: Reply with quote

The offset for everything i search is always "eax+03", and the only thing that changes there is "eax".
"eax" for thirst for example is different across versions.

for example:
in version 150126, eax +03 for thirst is : 2936d6

in version 150127, eax +03 for thirst is : 2938a2

My pointers always have 004161CC + OFFSET.
That thing never changes, doesnt matter the version or pointer.

about the smoething.exe.. i dont know.
Wher can i look at that ?
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