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 


Movement speed pointer manipulation

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

Joined: 03 Jan 2013
Posts: 37

PostPosted: Fri Jan 04, 2013 6:16 pm    Post subject: Movement speed pointer manipulation Reply with quote

Ok, so I am somewhat new to memory hacking but not with programming by any means. The game is a mmorpg. After much work I have successfully bypassed the protection on my game. Now I believe I have isolated the pointers related to 'movement speed' in the game and want to attempt to increase the movement speed. This is where I am a bit uncertain, manually changing the value with cheat engine and 'activating' the change has no effect. The pointers value changes briefly but quickly resets back to its usual value.

I definitely have isolated the right pointer value. I have tried narrowing down the base with a pointer scan. Got it down from 16M to around 70k, pointers. Should I keep going until I have just 1? I was unable to find the base pointer manually using 'find what writes/accesses this address' as it was continuously written and accessed while running the debugger, and changing my movement speed in game didnt produce any unique 'writes'/'accesses'.

Any guidance here is appreciated! Thanks.

---edit---

Ok I tried reducing the list more by restarting and rescanning. It seems that my list is now irreducible. It will not decrease past 70k pointers.
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 475

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

PostPosted: Fri Jan 04, 2013 7:02 pm    Post subject: Reply with quote

Before messing with pointers, first make sure that the address you're changing actually has an effect in the game.

If it doesn't, then pointers are useless.

Anyhow, perhaps the value is stored in a different way than you've found, and what you found is a display thing only

_________________
Tools give you results. Knowledge gives you control.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
sullx
Cheater
Reputation: 0

Joined: 03 Jan 2013
Posts: 37

PostPosted: Fri Jan 04, 2013 8:53 pm    Post subject: Reply with quote

Interesting, that is something I had not considered.

So are you saying that once I have found the correct memory address in game, when I change it and activate it, it should stay the value I desire and make the change in game? That seems a bit too easy. Aren't there ways that the developers code with pointers that prevent this simple manipulation?

I still feel like this is the right memory address. The pointer I have is a float. It correctly scales with the buffs/injuries one takes (ie when you fall of a cliff and take damage you get a -20% movement speed, this 20% decrease registers correctly to a 20% decrease in the value of the memory address I found). But I still have the same issue, when I manually set it to something else and click the activate tick box, it doesn't result in any noticeable change. And the value in CE flicks back and forth between the value I am forcing it to and the previous value (the value the game wants it to be).

Side note: when I do a scan to see what writes/accesses the pointer both result in a continuous stream of operations. They are all the same but just count up rapidly. I believe the opcode is always 'fstp dword ptr'
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 475

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

PostPosted: Sat Jan 05, 2013 3:23 am    Post subject: Reply with quote

Yes, only if changing the value in the game has an effect it's the correct address, else it's a display address.
And sure, a developer can play with pointers, but then the value of the address would be wrong as well and never get updated again. Since it keeps getting updated, it's most likely just a temporary display value.

Take for example a progressbar that goes from 0.0 to 1.0
And in game the health is stored as a value between 22781 and 81723
so when your health is at 30000 you're at 12.24%
Every gametick the game will tell the progressbar object that it should set the position to 0.1224

Now, when you scan for float for a value between 0 and 1, you will find the address of the progressbar object, but not the real health

_________________
Tools give you results. Knowledge gives you control.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN 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