Advertisement

Preventing Cheats

Started by March 10, 2003 07:06 PM
3 comments, last by aSSa9 21 years, 10 months ago
I have looked all over the net for information on this subject on only seem to be able to come up with information about making cheats. Anyone have any good information on the subject? Specifically trying to prevent access to the game in memory and detecting OpenGL and DirectX hooks. Thnx to all who respond.
make your game its own operating system :-D
Advertisement
The basic idea is not to trust your clients. Verify all the information they send you, and don''t rely on them for the definitive word on any data whatsoever except their own user input. And don''t send the clients any data they don''t need to display the world at that moment.

This''ll prevent warpcheats and wallcheats. Aimcheats are a different story.


But... but that''s what HITLER would say!!
I''ll expand on what Sneftel has said.

Assuming the game is a client-server based multiplayer game, "cheats" can be divided in 4 categories:

Information
Lets the client see information they are not supposed to, like seeing through walls, seeing areas of the map they shouldn''t, or seeing what other players are building. These cheats can be done by reading the games memory or by monitoring and decoding packets. Another way of getting an information edge is resource modification. In the free game "Soldat", some players modified the texture files so that objects like bushes which would normally hide/obscure other players where transparent, and so that items like grenades where brightly colored.

In a client-server game the ultimate way to prevent this type of cheating is to restrict the information sent to each client to what they can actually see. Depending on the type of game this may or may not be possible without huge bandwidth/cpu costs. Encryption of data in memory and in packets can increase the amount of time needed to make a cheat.

Authorative
This is when the server assumes that some piece of data from a client is correct without verifing it. For instance the game "Soldat" suffered from a cheat which allowed players to make any weapon rapid fire. Since the server trusted any "fire" packets it recieved from clients as being correct it was possible for people to make packet repeaters to duplicate bullet packets. In a both a server-client and peer-peer network model the solution is too check all information to ensure that it is consistent with the game state.

Assistant
Any cheat that will play for the player, such as aimbots. These are difficult to stop (though encryption of game data helps), and the best way to combat them is probably to allow an "observer" mode that lets other people see through the eyes of a player.

DoS (Denial of Service)
Not really a "cheat" per say, but still a danger. An example, yet again from "Soldat", is the "I''m a cheating lamer who got kicked" tool, which sends invalid join packets to a game, usually ones indicating a player joining on a non-existant team, that cause the server to crash. Preventing DoS involves making the network layer of the game robust enough to handle intentionally bad data (this goes hand in hand with preventing authorative cheats)
There''s an article on Gamasutra entitled "How to Hurt the Hackers: The Scoop on Internet Cheating and How You Can Combat It" by Matt Pritchard of Ensemble Studios. Here''s the link, though you may have to register before they''ll let you at it.

This topic is closed to new replies.

Advertisement