How feasible is this anti-cheat concept?

Discuss programming topics for the various GPL'd game engine sources.
Post Reply
Baker
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

How feasible is this anti-cheat concept?

Post by Baker »

(Windows only)

In theory, the following concept is the idea that cheating via a client is virtually impossible is the client is updated randomly, incompatibly and downloaded at the time of play.

There isn't enough time to create a cheater client.

1. I connect to a server with a client.
2. The client downloads the actual game-playing client from the server; executes it. (If there is a weak link, this is it.)
3. The downloaded client runs a special protocol with the server that is not known in advance and the protocol varies.
4. The server periodically compiles new binaries or periodically is stocked with binaries.
5. The downloaded client have a link to the source code in the help screen to comply with the GPL. (Maybe a 5 minute download countdown ... like popular download sites do.)
6. The server binary, while GPL, is never distributed therefore this private usage does not require distribution of the source code.
7. Downloaded clients "normalize" network traffic to the server to write them to demo files correctly.

Any holes in this concept?

Thoughts on the possible weak link? In order to get this past the operating system, this would have to be signed with a security certificate?
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
Spike
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK
Contact:

Re: How feasible is this anti-cheat concept?

Post by Spike »

a compiler will generally make the same choices on each recompile.
it is somewhat trivial to scan through the code looking for magic markers (like strings) and to then scan through the .code section for references to it. It would not be unthinkable to be able to find such a marker in the input code to provide an aimbot.
Also, the data section is generally not randomized at all either, and even if it is, you can probably find blocks using some sort of heuristic.

Put simply, the fact that you've got a randomized network protocol means nothing when someone can just inject code and scan through it.
Secondly, you could just implement the aimbot within the opengl library instead. Players are easy to detect - they're the colourmapped ones, and input is easily spoofed too. You can certainly implement wallhacks that way.
Baker
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Re: How feasible is this anti-cheat concept?

Post by Baker »

You can certainly implement wallhacks that way.
Well, thanks to you and LordHavoc wall hacks are not a significant concern.
Spike wrote:a compiler will generally make the same choices on each recompile.
I was think of N distinctly written in advance protocols with a randomization factor. Where N is an unknown number. But that the random number wouldn't be the only factor.
Secondly, you could just implement the aimbot within the opengl library instead. Players are easy to detect - they're the colourmapped ones, and input is easily spoofed too.
Something to consider. Not that I haven't considered this. But it wasn't foremost in my mind at the time of asking the question.
Put simply, the fact that you've got a randomized network protocol means nothing when someone can just inject code and scan through it.
Well, I did think of this. The short version goes like this: "Good luck with that :D"
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
Post Reply