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 


Cheat Engine Scanning

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine Source
View previous topic :: View next topic  
Author Message
exploder2013
How do I cheat?
Reputation: 0

Joined: 08 Apr 2018
Posts: 2

PostPosted: Sun Apr 08, 2018 1:27 pm    Post subject: Cheat Engine Scanning Reply with quote

Hello.

I've been recently remaking Cheat Engine in C# for educational purposes, but I've run into the problem that I'm trying to solve.

Basically, I am trying to replicate Cheat Engines value searching function mostly successfully, but I've run into a wall when trying to implement the scan for "Unknown initial value".

In practice what I'm doing is iterating through all memory regions of a process and resolving the type that I'm searching for (for example a float) and saving it to an array of Tuples that contain the base address and the value that was read at the time.

When doing this process for a bigger executable, the issue is that there are so many addresses to go through that I usually reach the limits of a single C# object size and it terminates with an OutOfMemory exception, which usually is above 1.5GBs.

While performing the same process on Cheat Engine, I only get about 500mbs of memory footprint.

So by this, I am assuming that Cheat Engine is using a smarter way to iterate through the memory regions and saving each value read, but since they are all unique I've been struggling to think of a method to achieve it.

One solution I could think of was to create a dictionary with unique keys of each value and just store the memory addresses that have that specific value in the value part of the dictionary, but I'm really unsure whether this could really help in reducing the memory impact my process has.

Could someone explain to me please, how Cheat Engine performs its value scanning for unknown values?
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 457

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

PostPosted: Sun Apr 08, 2018 1:34 pm    Post subject: Reply with quote

CE copies the full content of the game in memory, it doesn't check the type at all until the first next scan, and then it first checks if the memory has been changed or not
_________________
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
exploder2013
How do I cheat?
Reputation: 0

Joined: 08 Apr 2018
Posts: 2

PostPosted: Sun Apr 08, 2018 2:35 pm    Post subject: Reply with quote

Dark Byte wrote:
CE copies the full content of the game in memory, it doesn't check the type at all until the first next scan, and then it first checks if the memory has been changed or not


It seems that I love to overcomplicate things that could be solved so much simpler. This seems to be the perfect solution.

Thank you.
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 Source 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