Skip to main content
gamedev.net
🔒 Locked

Client Verification

Started by Lithic 0 replies 1.6k views
Original Post
Lithic
Lithic
I'm writing a FPS game engine that massively revolves around modularity and DLLs, giving clients a massive capability to cheat by simply switching around DLLs. I haven't began on the networking code yet, but I am trying to eliminate possibilities of cheating from my model before I start. One example of exploiting DLLs for cheating is that all the drawing is done in low level DLLs, and by altering drawing DLLs to draw everything half transparent, the player could have X-Ray vision. Is there any way I could verify that the client is running the same set of DLLs from the server side? It would be nice to do the same for models since a player could simply alter the model's transparency instead.
nmi
nmi
First of all:
If someone is really willing to cheat, he'll find a way.

I remember some time back there was a thread about cheating in this forum. People suggested that aimbots may just be searching for a pattern on the screen simply be reading the rendered pixels and then faking mouse movement to target. From the perspective of the server there is no difference between such cheats and a real user.
What the server should try to detect are impossible moves. If they happen multiple times, the player should be kicked. Either he was cheating or just too good ;-)


Cheat protection on the client side should take care against modified code, as you already mentioned. Checking the integrity of the DLL (via Hash) should be the first thing. This checking function should not be a single function that is called multiple times (this may be replaced easily), but an inline function that can be found in different places of your program. Removing those checks is annoying for the cracker, especially because the compiler may generate different code each time the function is instanciated. The check should be called from time to time to verify that the DLL is still unmodified.

Another idea would be to create screenshots from time to time and send those to the server, maybe together with the location of the player and so on. This would allow the server to recalculate the scene to detect such X-Ray visions. However the cracker might render a "special" image in this case.

Also people reported cracks that used WriteProcessMemory to modify the game code after that game was started.


Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.