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 


Compare to first scan only works once?

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

Joined: 12 Sep 2024
Posts: 3

PostPosted: Thu Sep 12, 2024 12:44 pm    Post subject: Compare to first scan only works once? Reply with quote

01. First Scan > Unknown initial value, 4 Bytes, Writable/CopyOnWrite Gray
02. 47427584 found addresses
03. Next Scan > Changed Value > Compare to first scan
04. 3782 found addresses
05. Next Scan > Changed Value > Compare to first scan
06. 3734 found addresses
07. Next Scan > Changed Value > Compare to first scan
08. 3649 found addresses
09. Next Scan > Changed Value > Compare to first scan
10. 3590 found addresses
...
n: 0 found addresses

Am I going crazy or should the "Compare to first scan" compare to the first "First Scan", perpetually? How it works right now, is that it compares to the last result, until there are no results left. Unchecking "Compare to first scan" works similarly, it just drops the results a lot faster.

I wanted to use this method to filter out and remove selected addresses until there are only static addresses left, but it seems to be broken?

For example, if I remove all 3782 found addresses, the "Next Scan > Changed Value > Compare to first scan" will return 0 results forever, even when I know for a fact that there are A LOT more changed values. I can manually change an address that wasn't detected before and the list will remain empty.
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 147

Joined: 06 Jul 2014
Posts: 4580

PostPosted: Thu Sep 12, 2024 2:44 pm    Post subject: Reply with quote

"Compare to first scan" compares the values of the addresses in the current found list against the values they had at the time of the first scan. If the comparison is true, the address is kept; if the comparison is false, the address is removed.

Adephx wrote:
I wanted to use this method to filter out and remove selected addresses until there are only static addresses left...
A static address is just an address in some module. If you want to scan through the memory in a particular module, click "All" under the memory scan options and select the module (e.g. "game.exe"). The values you want probably won't be located in static memory.

Adephx wrote:
For example, if I remove all 3782 found addresses, the "Next Scan > Changed Value > Compare to first scan" will return 0 results forever...
That's correct. If you remove all the results, there won't be any results left.
All next scans only filter out addresses. It'll never add new addresses to the found list.

I don't know what you're trying to do here, but if you want something that will work even after you restart the game, try the pointer scanner or code injection.

_________________
I don't know where I'm going, but I'll figure it out when I get there.
Back to top
View user's profile Send private message
Adephx
How do I cheat?
Reputation: 0

Joined: 12 Sep 2024
Posts: 3

PostPosted: Thu Sep 12, 2024 3:26 pm    Post subject: Reply with quote

I want to filter out all of the dynamic addresses until only the static ones are left. To elaborate, I want to filter out the addresses that are actively being used and modified by the process, so that I am (mostly) left with addresses that are modified by the user interaction, such as selecting a window, etc.

My idea on how to approach this was to scan Unknown initial value, then compare changed values and delete them until I get 0 results. That would leave me with a static address list, that I can monitor for changes when I interact wit the program as a user.
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 147

Joined: 06 Jul 2014
Posts: 4580

PostPosted: Thu Sep 12, 2024 4:54 pm    Post subject: Reply with quote

Adephx wrote:
To elaborate, I want to filter out the addresses that are actively being used and modified by the process, so that I am (mostly) left with addresses that are modified by the user interaction, such as selecting a window, etc.
The process handles user interaction.
If you want a list of values that don't change, try unknown initial value and unchanged value on repeat. That's still going to leave you with millions of results (most values don't change).

Adephx wrote:
My idea on how to approach this was to scan Unknown initial value, then compare changed values and delete them until I get 0 results. That would leave me with a static address list...
If you have 0 results, that leaves you with nothing.
_________________
I don't know where I'm going, but I'll figure it out when I get there.
Back to top
View user's profile Send private message
Adephx
How do I cheat?
Reputation: 0

Joined: 12 Sep 2024
Posts: 3

PostPosted: Fri Sep 13, 2024 12:01 am    Post subject: Reply with quote

I want the ability to filter out memory addresses permanently. Look. The processes that I am looking at allocates "random" values at certain address blocks. The rest of the address blocks remain "static" until I interact with the process. The issue with the current system is that if I first search for "unknown initial value" and then "unchanged value" until I filter out all of the "dynamic" addresses, as soon as I interact with the program and then search for "changed values" I have no way to return to the previously filtered list to interact with the program again.

Is there a way to permanently blacklist memory addresses from search results for a process?
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 147

Joined: 06 Jul 2014
Posts: 4580

PostPosted: Fri Sep 13, 2024 1:31 am    Post subject: Reply with quote

Adephx wrote:
I have no way to return to the previously filtered list to interact with the program again.
You can save a scan to use later with File -> Save current scanresults
You can save/load entire scan sessions too, also in the File menu

Adephx wrote:
Is there a way to permanently blacklist memory addresses from search results for a process?
Not arbitrarily. If you know a single range of addresses you want to scan in, you can set that under memory scan options. There's also other options, such as protection (writable / executable / CoW) and type (Edit -> Settings -> Scan Settings). e.g. if the memory you want is actually static (i.e. part of a module), have only the MEM_IMAGE type checked in scan settings.

Other than that, you'd have to implement your own blacklist in Lua. TFoundList.deleteaddress isn't published, so that's going to be annoying. Maybe a custom type would be easiest.

_________________
I don't know where I'm going, but I'll figure it out when I get there.
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