Discuss and collaborate on GML scripts

You are not logged in.

#1 2011-05-13 00:41:04

Registered: 2011-05-04
Posts: 25

[Discussion] Preventing Memory Editors

Here's an idea. Let's try and stop people from finding a variable's place in memory through scanning, or slow them down at least.

Memory Scanning works by scanning ALL values a program is using, then making a change occur to that variable, and refining the search to the new value. You can refine by "value became", "value got bigger", "value got smaller", or "value stayed the same". So I might run the program, scan for my ammo count, hit "unchanged" a few times to remove lots of garbage memory, shoot a bullet, hit "value shrunk", pick up some ammo, hit "value rose", and do other silly things like that until I am left with only 1 place in memory. I can then edit that value to be whatever I want. The point of this topic is to make that value hard to find.

We'll have two separate discussions. One is for hyper-secure variables, which can use quite inefficient methods of protection, and one for almost every variable in a game, which obviously would need to be very fast.

I propose, given a bullets variable, the middle digits (the 10's) is a random garbage number and is changed every step. This means the value maintains a constant randomness, and thus, is "untraceable". Example,

bullets = 148 // Sets bullets to 18 (not a typo, really 18)

Then in the step event..

bullets = ( bullets div 100 ) + (bullets mod 10) + irandom(9)*10

Thus changing the middle value every step while retaining the two outer numbers.


Board footer

Powered by FluxBB