|
发表于 2005-5-12 09:35:44
|
显示全部楼层
来自 中国–辽宁–沈阳
看看原版的
Summary
Cheating-Death (C-D) is an anti-cheat system which includes both a server and client. Unlike HLGuard, which is a server-side only anti-cheat, C-D offers more protection by blocking the cheats themselves before the player joins the server.
While in optional mode, players are checked for a running C-D client and will rename the player if they don't have C-D currently installed and running. For optimal protection against cheaters, servers can be configured to only allow players running the C-D client.
Unfortunately, the C-D anti-cheat system is incompatible with VAC secured MODs. As of v2.2.0, C-D can work with VAC supported MODs as long as VAC is disabled. Otherwise, C-D will shutdown if VAC is detected.
Overview
The main difference between Cheating-Death (C-D) and the other anti-cheating packages available is that it does not have cheat specific detection methods. Instead, it tries to make cheats less effective, and to prevent cheats from getting information. In most cases this leads to cheats simply not working.
The Concept of Cheat Detection
The idea behind cheat detection sounds great -- if you notice someone using a cheat, then kick them out of the game. The problem lies in that there is no generic, reliable way to distinguish between a piece of cheat software and another normal piece of software. Because of this, cheat detection software is forced to look for specific cheats. The cheat detection software stands guard over your server, looking for specific cheats. When it finds one, it can kick the player using it.
The problem with looking for specific cheats is that it is easy for cheat makers to modify their cheats and make them look different. Also, there is a lot of information available on how to make your own cheat, so new cheats are made frequently. To combat this problem, cheat detection software created a way to update its list of known cheats. When a cheat is released to the general public, it is added to the list of cheats to look for. Now the cheat detection software stands guard over your server with its constantly updated list of cheats. When it finds one, it can kick the player using it.
As it turns out, this is not a very good method. In fact, cheat detection is so unreliable that it needs to something else to make up for this -- punishment. Punishment usually takes the form of banning someone from the server. The idea behind punishment is that even though you cannot catch all cheaters, you can at least keep people who have cheated in the past off of the server. It also discourages people from trying cheating. Now the cheat detection software stands guard over your server with its list of cheats and its list of cheaters who are not allowed to play on this particular server. When it finds a player who is using a cheat or who has used a cheat in the past, it kicks that player.
You would think this would work, but as it turns out, it is not very effective. The problem is that if you ban someone from one server, they just go play on another one. There are currently several global cheater databases running, one of these is even integrated into cheat detection software. However this raises many questions about the legitimacy and maintenance of such a database. How long do people stay in the database? What happens if someone is placed in the database, but didn't cheat? What happens if your children or friends try out a cheat on your computer without your permission? What if a bug in the cheat detection software causes a false detection? What if one server wants someone banned, but another server doesn't? Who will judge all these matters?
All of these questions raise serious doubts about both the fairness and the functionality of such a database of cheaters, the scope for error is great, as is the amount of maintenance required. All this work is required to patch up the failures of the flawed concept of cheat detection.
How Half-Life Works
So how do you stop cheating without cheat specific detection? To understand this, you first need to know a little bit about how multiplayer Half-Life works. When you play Half-Life, your computer is known as a client. The client is responsible for getting your keyboard and mouse commands, and drawing on the screen. The client connects itself to a server. The server keeps track of all the clients. It sends the clients information about where everyone is and what they are doing.
Now the client is composed of two parts, the engine and the client MOD. The engine handles communicating with the server, drawing on the screen, and getting keyboard and mouse input. The MOD handles anything specifically related to the game you are playing. There will be one MOD for each game on your machine. If you have installed Half-Life and Counter-Strike, there will be a MOD for Half-Life and another MOD for Counter-Strike. But there is only one engine. All MODs use the same engine.
The engine and the MOD interact with each other to make the game run on your machine. The way most cheats work is that they wedge themselves in between the engine and the MOD. Now the engine talks to the cheat, and the cheat relays it on to the MOD. And the MOD talks to the cheat, and the cheat relays it on to the engine. As far as the engine and the MOD are concerned, everything is working fine. They have no idea that they are actually communicating through the cheat. These cheats are usually called "clienthooks".
Now that the cheat is in between the engine and the MOD, it can do just about anything. Some of the more popular things to do are to draw extra information on the screen and to correct your aim. But it could also make you run around like an idiot, drop all your weapons, and kill yourself. It is all up to the maker of the cheat.
Another method that has been gaining popularity lately is to make the cheat look like a 3D driver (OpenGL or Direct3D). While the engine thinks everything is as normal, the cheat analyzes rendering data before relaying it to the real driver. (It "wraps" itself around the driver.) While the cheat gets less information than intercepting the engine to MOD interface, it can still figure out the position of any entity that is being drawn. Combined with sending mouse and keyboard events, these cheats can be very effective too. They are also harder to block, because there are far more possible ways to intercept the engine to driver interface than engine to MOD interface. These cheats are usually called "wrappers".
Preventing Cheating
There are really two fundamental problems that need to be overcome. The first is that the engine provides the MOD with detailed information about where the other players are located. The second has to do with the way the engine draws.
MODs really do not need to know the exact location of a player. They only need to know approximately where a player is located. To be effective at aiming, cheats need to know the exact location of a player. If the engine would not tell the MOD exactly where a player is located, but approximately were a player is located, automatic aiming would be ineffective.
The second problem is in the way the engine creates a picture. It starts at the back and works its way forward. If there is a player standing behind a wall, the engine draws the player first and then draws the wall over the player. Normally, this works great. The problem occurs when a cheat has made the walls transparent. With transparent walls, you would be able to see the player through the wall. This form of cheating is known as wallhacking. If the engine would not draw non-visible players, wallhacking would not work. All you would get out of using a wallhacking cheat is transparent walls.
How Cheating-Death Works
Cheating-Death works by wedging itself in between the engine and the cheat. This is what makes C-D different than most anti-cheat software. It does not run as a separate program outside of the game, but is actually loaded into the game. Here is what C-D does:
If C-D detects that you cannot see a player, it will move that player's location behind you. This does several things. First, it makes wallhacks less effective. Even if you have transparent walls, you cannot see enemies behind them, until at least part of the enemy is visible on the screen.
Second, it makes radars and ESP boxes less effective. ESP boxes are boxes drawn on top of players, these boxes will show up through walls. If a player is crouching on the other side of a wall, a box will be drawn on the wall right where the player is crouching. Even though you cannot see the player, the ESP box gives you their exact position.
Furthermore, C-D gives the MOD inaccurate information about players' positions. This will ruin ESP, aimbot and other features common in cheats. It will not affect collision detection, because that is done by the engine, which still has accurate information.
Finally, C-D monitors places commonly used by cheats to intercept data from the engine. If Cheating-Death notices that one of these locations has been modified, it disconnects the player. This deprives the cheats of the information they need in order to function, and forces them to change the way they get information which is quite hard, instead of just making themselves look different which is relatively easy.
Client Side Solutions
We realise that in the end we cannot stop hackers with enough motivation from hacking C-D. Everything that runs on the client side can be hacked. Like everything, eventually our latest version of C-D will get hacked, and it is important to remember that cheat makers are very smart. However when it does get hacked, we will change the way we do things and release a new version. Give them something new to hack on.
Other Benefits of Cheating-Death
Here are some other benefits of CD:
No spam. C-D is very quiet. It does not distract you by writing to the screen or saying things.
No network problems. C-D does not open any network connections. Instead it uses Half-Life's built-in messaging system for its client/server communications. You do not have to worry about reconfiguring your firewall or router to use C-D. If Half-Life works on your network, then C-D works on it too.
No lag. C-D does not use up your bandwidth by sending a lot of information on the network. C-D's challenge packet is very small (22 bytes) and is only sent every few minutes.
No list of cheats to update. Since C-D only aims to block certain cheating methods instead of specific cheats, it does not have a list of known cheats that needs to be frequently updated.
No unfair bans. When you get disconnected from a server with a violation, the reason for being disconnected is between you and your conscience. The server admin does not know why you disconnected and therefore cannot ban you. We like to think that everyone is welcome to come back and play fair with cheats turned off.
No constant downloading. You only have to download C-D once, the auto-update feature keeps you up to date.
Frequent updates. If we become aware of cheats that get past C-D, we will release a new version. The average time between cheat release and C-D release is currently 72 hours, but may vary depending on the cheat.
As you now know, Cheating-Death is very different that most other anti-cheating programs. Its main focus has been to make the game more enjoyable, without a lot of hassle. We hope we have been successful. |
|