At 4/17/09 11:14 AM, zenyara wrote:
Cheat Engine can change an "encrypted" value because it's not really encrypted while it's in memory.
It looks for a change in a value, so if your "encrypted" score value changes from 2 to 3 it will find it
and doesn't matter if health=3 variable is really rwerweoi423230423des=3
You misunderstand. I don't mean encrypt the name of the variable. Cheat engine searches for values. If the health is stored as a string of text or as a completely unrelated, ENCRYPTED, value then it makes it much more difficult for the user to find which variable stores score/health/etc and even more difficult for them to know what value to change it to in order to improve it.
How would you reference an ever-changing variable? I suppose it would have to search within a function? It would have to store what the new variable is so that an object can reference it. Seems like it would take up alot of memory if all your variables are constantly changing names. I'd like to see an example of this method.
If I had 5 different variables which all keep a value, and in each update I pick a random one to be the active "score" variable, while storing a random value in each other variable I can easily keep track of score with very little memory usage (a few extra variables is nothing). The variable that remembers which of these is the actual score can again be encrypted and even that could be moved between multiple storage locations.
You seem to have a decent understanding of Cheat Engine but just because things like score are essentially a number they don't have to be stored in memory as a number, they can be anything as long as the game has the means to decypher it. If the user can't tell the score from a bunch of unrelated rubbish they will have a tough time modifying it.