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 


Custom scan for values that depend on their address

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
Irrialite
Newbie cheater
Reputation: 1

Joined: 10 May 2009
Posts: 13

PostPosted: Sat Apr 13, 2013 11:46 am    Post subject: Custom scan for values that depend on their address Reply with quote

How would I go about making a custom scan for variables that are XORed by the address they're stored at. For example:

eax = value
ebx = address of value

xor eax,ebx
mov [ebx],eax


I'd like to make a custom scan for that but I haven't had any success yet.
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 471

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

PostPosted: Sat Apr 13, 2013 12:19 pm    Post subject: Reply with quote

Currently not possible as custom types do not use addresses
_________________
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
Irrialite
Newbie cheater
Reputation: 1

Joined: 10 May 2009
Posts: 13

PostPosted: Sat Apr 13, 2013 12:22 pm    Post subject: Reply with quote

Would it be possible to include that functionality in a future update?
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 471

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

PostPosted: Sat Apr 13, 2013 12:30 pm    Post subject: Reply with quote

Depends, how often do you need this?
No other variabletype needs to know the address so right no nowhere in ce where a variable is shown is the address provided

_________________
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
Irrialite
Newbie cheater
Reputation: 1

Joined: 10 May 2009
Posts: 13

PostPosted: Sat Apr 13, 2013 12:34 pm    Post subject: Reply with quote

In a certain game nearly all the variables are obfuscated like that along with some other encryptions. While it is possible to find them by using changed/unchanged it's very tiresome and converting between them is effort as well. It would be mainly just for games like that.
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 471

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

PostPosted: Sat Apr 13, 2013 1:32 pm    Post subject: Reply with quote

Hmm, I probably won't add this to the next version. Perhaps the version after if more people have faster systems or popular non-multiplayer games store data like this, but not right now.

First it would decrease the scanspeed of all other scans as well. (the checkroutine needs to add the address parameter and every call the address must be recalculated, for every single address it checks)
And a LOT of code needs to be changed throughout cheat engine (addresslist, foundlist, dissect data, autoguess type, structure dissect, ...)

_________________
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
Gniarf
Grandmaster Cheater Supreme
Reputation: 43

Joined: 12 Mar 2012
Posts: 1285

PostPosted: Sat Apr 13, 2013 3:16 pm    Post subject: Reply with quote

Hmm...I vaguely remember seeing something like that in one or Relic's games (Space marine or one of their dawn of war series - don't remember). They xored dwords with their addresses IIRC. So from an user's perspective I'd interested in this feature too.


Actually, taking other encryptions schemes into account (like when the key is randomized, but accessible through a known pointer), I'm starting to think it'd be nice to have somekind of "injected AA custom types", executed in the target's address space, with a pointer to data as input.
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 471

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

PostPosted: Sat Apr 13, 2013 4:13 pm    Post subject: Reply with quote

Custom type inside the target process is possible but will require a very fast cpu and special windows version where cpu slices are extremely small, else the speed will be that of a memoryscanner that scans 1 byte at a time with readprocessmemory

A custom type inside the target will work as follows:
Ce wants to read an address so sets up the data and sets an event. Then it waits
Some time later the windows scheduler will wake the thread that controls custom scans in the target process and the type will be used to fill in a memory block.
It then triggers an event that the data is ready and the thread goes to sleep waiting for the next data command
A while later ce gets awakened and reads out the result value

It will do this for every single address
And sure, i guess i could query multiple addresses, but still, the times that you actually need this is after you already figured how it is stored



Also,space marine xor'ed it, but i don't think it was the address

_________________
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
Gniarf
Grandmaster Cheater Supreme
Reputation: 43

Joined: 12 Mar 2012
Posts: 1285

PostPosted: Sat Apr 13, 2013 5:17 pm    Post subject: Reply with quote

Dark Byte wrote:
And sure, i guess i could query multiple addresses, but still, the times that you actually need this is after you already figured how it is stored
I was also thinking about batch queries, something like a buffer containing the number of addresses to scan, followed by each address. A second one containing the output, and a wrapper feeding input/output addresses to the injected asm script.
...Then come the joys like: the custom type crashed the game and CE is still waiting for the results.
Thinking again about it, using an injected custom type that would read [[[Game.ex+1]+2]+3] in MyGame2.exe would be damn problematic. You'd probably need a veh in the wrapper.

As for usability, the game engine I'm thinking about (afaik used in every Eushully game, albeit with a lot of variations) uses the same key for every variable, so once I hacked - for example - money I can go for HP,MP etc... Only problem is that the key is randomized at startup.
'Ma if it's too much of a bother, just give it up, I wrote an external program that does various ReadProcessMemory and tells me what int I should enter in CE to have the desired result.
--EDIT:
Still, generally speaking injected custom types would be useful in almost every game that uses variable key encryption.
---End of edit

For the (supposed) Relic game I'm pretty sure I saw a clear float after xoring with an address from my cheat table, but it was a long time ago so I don't remember the details. And anyway, the OP has that cipher right under his noose.
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