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 


[Suggestion] Pointer Scan Base Address options

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

Joined: 19 Sep 2019
Posts: 9

PostPosted: Thu Mar 12, 2020 8:40 am    Post subject: [Suggestion] Pointer Scan Base Address options Reply with quote

When using pointer maps, you can't specify a base address, but it seems like you should still be able to in other ways.

We should be able to define that the Base Address is always going to be precisely like "UnityPlayer.dll"+0147A6A0 without any other address/region bullshit being defined, or at the very least we should be able to specify that the base address is always going to be using "UnityPlayer.dll" for example.
You could even go the extra step and also allow us to define a range within that, such as "UnityPlayer.dll"+01470000--0147FFFF
Maybe this could be implemented as a setting through Pointer Map Generation to reduce the map size too, only accepting "UnityPlayer.dll"... I'll take anything.

It has to be possible, and feasible. It'd help get rid of results you know are bad, and it'd make pointer scans SO MUCH FASTER, which is very much needed.

Many times I've made it to a point where I've narrowed down the base address like above, but the following scans I need to do for a good pointer take absolute ages because it goes through every other base address imaginable and there's nothing I can do about it because there's no base address options with pointer maps.
Something like this would be good even without pointer maps, because the address stuff is fairly awkward.
I want this so bad I'm tempted to figure it out myself, but I know I'd waste so many hours just trying to get a grasp on the base code when you are much more capable.
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 471

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

PostPosted: Thu Mar 12, 2020 8:47 am    Post subject: Reply with quote

if you use "compare results to other pointerscans" you can still specify a base address
("Use saved pointermap" is only needed if you need to do a scan without owning the game)

Quote:

It has to be possible, and feasible. It'd help get rid of results you know are bad, and it'd make pointer scans SO MUCH FASTER, which is very much needed.

Nope, it would not save any time, except the writing of useless results to disk, but using a pointermap to compare against deals with that issue)
The pointerscan starts from the final address and then goes up a level and keeps on going up a level until it encounters a base address. If the base address is in the allowed range, write to disk, else skip

_________________
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


Last edited by Dark Byte on Thu Mar 12, 2020 8:55 am; edited 2 times in total
Back to top
View user's profile Send private message MSN Messenger
Ansiando
How do I cheat?
Reputation: 0

Joined: 19 Sep 2019
Posts: 9

PostPosted: Thu Mar 12, 2020 8:52 am    Post subject: Reply with quote

Dark Byte wrote:
if you use "compare results to other pointerscans" you can still specify a base address
("Use saved pointermap" is only needed if you need to do a scan without owning the game)

Quote:

It has to be possible, and feasible. It'd help get rid of results you know are bad, and it'd make pointer scans SO MUCH FASTER, which is very much needed.

Nope, it would not save any time, except the writing of useless results to disk, but using a pointermap to compare against deals with that issue)
The pointerscan starts from the final address and then goes up a level and keeps on going up a level until it encounters a base address. If the base address is in the allowed range, write to disk, else skip

Surprised I didn't know that not using a pointer map for the initial address allows me to define a base address while comparing results. Thank you!
It's hard to believe that this doesn't save time, but I don't know how the pointer maps are generated and used. This will do for now Smile
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 471

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

PostPosted: Thu Mar 12, 2020 8:55 am    Post subject: Reply with quote

If you want a scan that goes from the base address then do the structure spider
Set base region to the specific base address
tick "destination must be in range" and write down the destination address two times
set max level, structsize, click scan and wait.

You may notice it'll usually take longer than the pointerscan

_________________
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
Ansiando
How do I cheat?
Reputation: 0

Joined: 19 Sep 2019
Posts: 9

PostPosted: Thu Mar 12, 2020 8:58 am    Post subject: Reply with quote

Thanks for the insight. I've wondered about this stuff for a long time.
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 152

Joined: 06 Jul 2014
Posts: 4719

PostPosted: Thu Mar 12, 2020 10:01 am    Post subject: Reply with quote

CptBrian wrote:
It's hard to believe that this doesn't save time...

The pointer scanner starts at the address you're scanning for, looks for pointers to that address, log the ones that are static (or threadstack addresses), and recursively repeats this process for every other pointer found. Letting CE know where the base address is won't speed anything up substantially because CE won't know how to get to the base address until it has already done all the work it would've needed to do if it didn't know what the base address was in the first place. I guess it could speed things up if the bottleneck is writing the results to disk, but that should be solved by using multiple pointer maps.

The structure spider works in reverse: it starts at a base address and searches through structures to find stuff and recursively repeats the search using pointers found in the struct.

There might be an argument that doing both at the same time could lead to a faster path found, but that would need to be implemented as a new feature and it might not even work that well in practice.

_________________
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