To make pointer scanning as efficient and accurate as possible, you should have an option to generate a pointer map to a file, like Cheat Engine does.
The pointer map can contain every address that has "pointer-like" data, that is, it contains a list of addresses and their values, and the values look like it "points" to any active memory region's address range. This map should be very fast to generate (it's maybe like 1 or 2 seconds with Cheat Engine). I'm guessing that the pointer scanner already does this to some degree, but its main problem is that you are forced to scan first instead of caching all pointers for the current snapshot.
Cheat Engine lets you prune a pointer scan by letting you compare multiple snapshot pointer maps (and the target addresses that were saved when the pointer map was generated). It makes the scanning a lot faster; you don't need to have a result limit; and the pointer chain depth can be rather large, like say 6 to 8.
With the app that I care about scanning using Cheat Engine, generating 3 or more pointer maps from different snapshots narrows my "needle" searches down to like 20 pointer chains, and of those, I can usually identify my target static pointer address immediately.
To make pointer scanning as efficient and accurate as possible, you should have an option to generate a pointer map to a file, like Cheat Engine does.
The pointer map can contain every address that has "pointer-like" data, that is, it contains a list of addresses and their values, and the values look like it "points" to any active memory region's address range. This map should be very fast to generate (it's maybe like 1 or 2 seconds with Cheat Engine). I'm guessing that the pointer scanner already does this to some degree, but its main problem is that you are forced to scan first instead of caching all pointers for the current snapshot.
Cheat Engine lets you prune a pointer scan by letting you compare multiple snapshot pointer maps (and the target addresses that were saved when the pointer map was generated). It makes the scanning a lot faster; you don't need to have a result limit; and the pointer chain depth can be rather large, like say 6 to 8.
With the app that I care about scanning using Cheat Engine, generating 3 or more pointer maps from different snapshots narrows my "needle" searches down to like 20 pointer chains, and of those, I can usually identify my target static pointer address immediately.