Cheating in Multiplayer Games
millertime3250 writes "Tom's Hardware is running an interesting article on cheating in multiplayer games. In an issues that has gained increasing notority, it is a great read for those Counter-Strike players and others alike. It defines the different types of cheats like Client Hook, OpenGL Hack, and Hard-Coded Hack, and cheating's effect on gaming."
I think common cheats should have a forum where they are documented. That way, if someone at a LAN party gets noticed using them, they can be kicked out.
If my answers frighten you, stop asking scary questions.
I'm surprised that the article didn't mention hlguard, also developed by united admins. It runs on all sorts of hl mods and is likely one of the most used anti cheat tools available. In case you are not familiar with it, it contains tools to check for aimbotting, common cheat cvars, and manual ogc detection. If you run any type of hl server (and it's interesting they don't mention the hundreds of other hl mods) hlguard is definitely a server side addon you should look in to.
http://www.unitedadmins.com/hlguard.php
-= Why can't I add 'Anonymous Coward' to my list of Foes? =-
...well, assuming I were a cheater. Which I'm not. Really. But anyway...
I'm a big fan of the cheat which allows you to tweak its effect. There's an example given of a BF:1942 cheat which will double your fire rate and driving speed. This suggests something interesting; the incremental cheat. Just use the cheat to up your fire rate and driving speed by 5% to start with. If no one responds; up it a bit more, and more, until someone starts calling you a cheater. Then you can turn it back down and then tell them that they're making false accusations, whilst still having perhaps a 20% advantage over other players.
Note to M1-ers: a curt but otherwise insightful message is not "Flamebait" or "Troll".
Not all client hooks are cheat programs though. There are a few good examples of non-cheat hooks like sparky's utils for Team Fortress Classic.
Also, opengl wrappers/hooks can do more than just remove walls. They generally can also sniff the memory structures from the game client and do most of the stuff client hooks can do as well, whereas the article seems to think they can only remove walls.
bananas like monkeys.
An interesting point and something I myself have been worried about for quite some time. More frightening to me than a cheating person (usually a lamer using someone else's scripts with poor or little understanding of how they actually work), is the eventuality of an admin who decides to use a server maliciously. It seems to me that with the power server admins have over the clients in some games, it would be feasible to use a server to distribute a virus, etc.
Imagine how many unique gamers go to a well-populated game server everyday...
IFAIC, the only possible way to spot a cheater is by spectating. Ignore how fast his reflexes are, and look at his strategy. Does he do a route that runs by all the pickups? Does he look behind himself a lot? Does he play smart? Then he's probably not cheating.
To get a cheat free server, admins should find players that visit a lot and arn't jerks and give them admin rights. Simple.
"A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
I play a MMORPG called Dark Age of Camelot (DAoC). A major part of DAoC consists of realm vs. realm combat, where players from opposing realms clash in epic battles (a.k.a. lag fests). There is one well known form of cheating in DAoC, known as radar, which allows the radar user to see the positions of enemy forces in realtime before he can be seen himself.
The most popular radar program for DAoC is Excalibur, hosted by your very own Sourceforge. The troubling thing about Excalibur is that it does not fit any of the definitions of cheating, although it clearly gives players using it an unfair advantage. It does not modify the game binaries, or modify memory areas or graphical output when running. It does not interfere with or modify data streams between the client and server. In fact, it doesn't even run on the same computer you play the game on. Excalibur runs on a Linux / *nix computer on your local network, and works by passively sniffing packets, decoding them, and constructing a detailed overhead map of the player's surrounding area. Thus it is, and always will be, undetectable whether someone is using radar or not.
It really is a rather clever hack, but it's ruining the game for us honest players. (And no, I have never ran Excalibur, even to try it out.) The question is what can be done about? It would seem that the only two options are:
1.) Encrypt every packet sent between the server and client, which would undoubtably slow everything down.
2.) Send less information to the client, by implementing some kind of server-side clipping, whereby the server determines what objects are visible to each client and sends only those. Again, this would slow everything down, on the server side because it requires more work, and on the client side because when the player suddenly encounters the enemy horde, his computer will be forced to load hundreds of character models all at once.
So, any other suggestions?
All that we see or seem is but a dream within a dream.
Seems statistical analysis could find cheaters, the same way Baysean Filtering finds spam. It doesn't look for particular known signs (Viagra or a .dll mod); it analysizes trends in general.
If an auto-shoot aimbot is used, the time between when the enemy is on the perp's screen and the time the gun is shot should be nearly constant -- by screen I mean either entire screen or some radius of the pointer. If it's a human making the decision, that time would have a wider distribution with a larger variance.
For auto-aim but no shoot, take notice of when the pointer moves across the screen rapidly. Yes, there'd be type I and II errors (both not catching all auto-aims and recording simple things like turning around), but with enough analysis, it might be doable. Further analysis could be done on mouse movements prior to headshots. If a significant number of headshots (or killshots in general) came immediately following a rapid mouse movement, than an aimbot is rather statistically likely.
For wallhacks, consider a graph that connects all hallways to other hallways... if a player is consistently converging on enemies out of view, ie the shortest distance between the two players is constant or decreasing, statistically speaking, a wallhack is likely.
Of course, for all of these, the confidence intervals could be set arbitrarily close to unity -- and so it would give server admins the ability to risk overall Type I or II errors. This insures against being lucky some of the time, or doing the logical or rational thing in certain situations.
While cheating could overcome these methods by introducing errors (intentionally miss sometimes, walk around randomly some of the time, etc.), it would reduce the impact the cheater would have on the game, thereby making it less interesting for the cheater... perhaps to the point of not worth his while.
Support a few technologists in Washington.
Templates. I play America's Army, and on some stages one can shoot a 203 (rocket launcher) into a window that is obstructed by some intermediate object. Blindly firing into a window that the enemy is likely to be inside due to its strategic importance from the other side of the map -- blindly -- clearly detracts from the game.
The easy fix: introduce random errors in the map draw. Make the location of trees in an area a function of a random distriubtion. Make hallways marginally shorter, longer, wider, or narrower, in an effort to prevent people from using natural markings as methods of aiming (ie put your thumb three pixels below the lowest tree leaf to throw the grenade into the hole in the ground from maximum possible distance away).
It's not a cheat (no modifications, etc) but it clearly is in conflict with the spirit of the game. Game developers -- fix this!
Support a few technologists in Washington.
This only works on servers where the people have to sign up. When you sign-up are are giving a starting raking, say Rank:1. As you play the system keeps track of your success and if you're good enough ups your rank (i.e Rank:2). Then it only allows you to play against people of the same rank as yourself. So all the cheaters (Rank:17) get to play against all the other cheaters (and those rare individuals with God-like skills) and us non-cheaters can play against other non-cheaters (and really really lame cheaters). Everyone gets a challenging game and who cares who's cheating anymore...
You could even start a game (as an example) at Rank:7 +/-2, then people who are Rank:5, 6, 7, 8 or 9 can join.
"Grab them by the pussy" -- President of the United States of America
In fact, one of the best cheats for an FPS is "wallhacking". You install a modified graphics driver that negates the Z value of drawn objects.
That way, distant things appear in front of nearby ones, instead of the reverse. So you can prepare to fire at an enemy before he's even in view.
Here is a possible partial solution: have the server issue multiple randomly moving false images behind the "opaque" area. Normal people would never see them, but the cheaters would have to deal with many fake targes, making the illicit information less useful. Going a little farther, the server might even be able to move a fake image into the cheater's view (but somehow still invisible to normal players) and ban the cheater when he tries to shoot at it.
A dingo ate my sig...
Counter-Strike isn't that good. I doubt anything would be.
A simple solution, at least for FPS games, would be to have invisible bots in every server, that don't shoot, don't get in anyone's way, and don't pick up weapons, health, etc...
This way regular players won't have any idea the invisibots are there. However, if a cheater should happen to have one in his field of view, his aimbot will take over and frag the poor unsuspecting invisibot.
If a player frags an invisibot, they get kicked.
It's not totally foolproof, but it seems to make sense. at least for aimbot cheats.
You like your new Mac more than you like me, don't you, Dave? Dave? I asked...She said Yes.