|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000377||Cheat Engine||(No Category)||public||2015-02-28 01:51||2015-02-28 23:45|
|Summary||0000377: use thread injection to scan for memory?|
|Description||as far as i've guessed (haven't actually looked in the source code), cheat engine does a full memory copy of the target process (i guess this is because ReadProcessMemory calling is slow, so just make 1 big call with reading everything? or something like that), |
question is, could we avoid copying memory like that, by something like this:
Freeze all target threads,
make the new thread scan the process for us (either write the opcodes for the operation directly in the memory, or use a classic dll injection,), then use some IPC-thing (shared memory?) to tell cheat engine when the scan is done, and where to grab the results?
if something like this is possible, it would be nice in memory-constrained situations, i guess.
|Tags||No tags attached.|
Dark Byte (developer)
It only makes a full copy when doing unknown initial value scans.
Normal scanning only it loads blocks the size of the scanbuffer you provide in settings(usually 512KB)
If you're on a low memory system, use a smaller scanbuffer.
Also, if you compile CE with the define lowmemoryusage unknown initial value scans will also be written to disk instead of being stored in memory
I did play with this method in the 5.* branch of CE (hyperscan), but the speed was always as fast as a normal non-injected scan, but with the added trouble that it would find memory blocks it allocated itself
|2015-02-28 01:51||Hans Henrik||New Issue|
|2015-02-28 23:45||Dark Byte||Note Added: 0000784|