Save-Point
Anti Cheat Engine Solution - Printable Version

+- Save-Point (https://www.save-point.org)
+-- Forum: Games Development (https://www.save-point.org/forum-4.html)
+--- Forum: Tutorials (https://www.save-point.org/forum-19.html)
+--- Thread: Anti Cheat Engine Solution (/thread-4443.html)



Anti Cheat Engine Solution - Narzew - 11-16-2012

Tutorial written by Narzew - Anti Cheat Engine Solution

Welcome. I want to present my solution about preventing cheating games using Cheat Engine.

First (and all) you need is simple Integer packer.
You can use NRGSS encrypt_int method. The encrypt_int method from NRGSS library uses a key to pack values.

The Cheat Engine search region of the memory with specified value. To prevent this, you must pack the value.

For ex.
Code:
$gold = 3000
print "You have #{$gold} gold. "
This method print how much gold you have, defined of a variable.

Code:
$gold = $nrgss.encrypt_int(900, 5)

The $gold variable now has other (packed) value.
To retrieve normal value you can use :

Code:
$original_gold = $nrgss.decrypt_int($gold, 5)

This is for retreating original (non-packed) value.
Sample of usage of system:

Code:
$gold = $nrgss.encrypt_int(3000)
module Gold
def self.add_gold(x)
$gold = $nrgss.encrypt_int($nrgss.decrypt_int($gold,7).to_i + x,7)
end
def self.lose_gold(x)
$gold = $nrgss.encrypt_int($nrgss.decrypt_int($gold,7).to_i - x,7)
end
def self.get_gold
return $nrgss.decrypt_int($gold, 7).to_i
end
end

Look that second argument of $nrgss.encrypt_int and $nrgss.decrypt_int is the key. Other key generates other values ;) Look, that the encryption key must be identical like decryption key. Using different keys for gold, exp etc. is good idea ;)

The presented gold module has 3 functions :

- to adding gold
- to losing gold
- to getting actual gold value

It has installed prevention from cheating by Cheat Engine.
Look, that using different keys will help.

Note : The used Gold module is not Rpg Maker Gold Module!! I created it only for sample. If you want to make protect gold/exp with this (I will make script in some free time) please use algorithm to protect specified values and change adding, removing methods.