Page 1 of 1

a theoretical question.

PostPosted: Fri Apr 27, 2007 1:27 pm
by Torero
If I want to write a anti-scanner code for the position system in a RTS (or any other app )


how about, the map is

( x,y )

x = 1~100000
y = 1~100000

yet the real size of the map is only
( x,y )

x = 1~1000
y = 1~1000

and then the unit and buildings would have their positions randomnize a lot, like this



on the visual map, a unit is actually at x = 50000, y = 50000,
but it wouldn't make a difference in fact, because it's position number is changed around a lot, but it doesn't change to a value larger than what would be considered a real move by the player, the values simply change around a lot..


I sound like a broken record, but how about this:


the map is (x,y) and x =1~100, y=1~100,

and then unit would have ( 50.1234234, 50.2341231 )

what keeps changing around is the numbers behind the decimal, in this case as long as it's only behind the decimal, the unit actually stay put.


how do you solve this trick ?

PostPosted: Sat Apr 28, 2007 10:27 am
by L. Spiro
By scanning for float values that, when cast to integers, resolve to the location I want.


L. Spiro

PostPosted: Sat Apr 28, 2007 8:44 pm
by Torero
what about 100020 and 100030?

PostPosted: Sat Apr 28, 2007 9:35 pm
by L. Spiro
It dosn’t matter.
If your game has a system that constantly changes values but has a mechanism for keeping them in the same place as they change, I can write a script that does the same modification to see if the values in RAM represent the target location in the game.

My scanner would just do the same thing your game does, so if your values round off in any way to a single position on the screen, my script would perform the same rounding operation and get the same position on the screen, and check that for a match.


L. Spiro