Protecting games from memory scanners (e.g. Cheat Engine)

I am making a game in C ++ 11 where points are sent to the server. I save the account as a simple float, so people using software like the Cheat Engine can easily change the value of the account before it is sent to the server.

How can I protect my game from such attacks?

+5
source share
5 answers

There are many options you can make, but it’s best not to accept any important values ​​from the client. Ask the server to do all the calculations and send the values ​​to the client.

+8
source

, , . , , " " - , "Pac-Man", "Blobs", Pac- , , , , .. , , , ,

, , "". .

+3

, ( , ), - .

, - . , Call of Duty , , , / .. .

, . . ; , , , 100% .

+2

, , . - .

, Call of Duty, 30 -, , . , . , .

0

. , . , . : https://github.com/jgk2Th/anti-wpm.

In fact, it creates two variables with the same value and moves one of them to different positions in RAM (simply put), which greatly complicates the search. He then compares the values ​​for the differences.

This is simplified code for an idea. I hope this self-description is well commented.

int Value = 0; // variable which we want to protect
int pValue[ 1000 ] = { 0 };
int Pos = 0; // 'pseudo-position' of the element in pValue

while( !GetAsyncKeyState( VK_SPACE ) )
{
    if( pValue[ Pos ] != Value )
        printf( "detected!" );

    ++Value;

    Pos = rand( ) % 1000;
    pValue[ Pos ] = Value;

    Sleep( 10 );
}
0
source

All Articles