freeze value
Hi guys, would like to ask how i'm going to freeze address value like ce? i'd try in looping but i got detected. thanks
It doesn't seem like there is any Windows API that allows you to freeze a specific address, the only way seems to be infinite looping and writing a custom value to pseudo-freeze.
After taking a quick look at Cheat Engine's source code it seems they are applying a similar technique. So I believe this is the only way.
You could try setting it to PAGE_WRITECOPY with VirtualProtect, but that depends on how your target process will handle the access error it will throw when it tries to write it. Maybe hook their SEH handler?
@xetrics That seems pretty hacky which might be why it seems Cheat Engine just takes the infinite loop approach? When you think of why someone would want to freeze a value, I don't think just infinitely overwriting the value would ever not be sufficient. Would disabling write access even lead to any violations or errors thrown though? The documentation for PAGE_WRITECOPY says An attempt to write to a committed copy-on-write page results in a private copy of the page being made for the process.. I'm not sure what this means in practicality though without just testing it, so a process just keeps writing to a write protected area and copies of the page just keep being created...?
@Rob-- sorry, I meant PAGE_READONLY. I only suggested this hack as OP stated he got 'detected" doing it through an infinite loop. This method will circumvent any WPM hooks the process has, which is one of the most common anticheat techniques. 50% of game hacking is finding a hacky and obscure way to do things, you know, the whole cat and mouse thing.
@xetrics ah good point I should’ve read the main issue again. We could offer 2 new functions: one that freezes via a loop (just because it’s handy) and one that freezes via page protection and handles exceptions raised (if we can figure that out)