Wallhacking
From Wikipedia, the free encyclopedia
Wallhacking is the use of various methods for cheating in multiplayer first-person shooters by changing the properties of walls. Wallhacking allows cheating players to see things they normally wouldn't be able to, such as the exact location of another player hiding behind a wall, giving the cheater an advantage. Wallhacking is the FPS equivalent of maphacking. Wallhacks can contain viruses and trojans. Wallhacks are used in most fps games, Call of duty 2, Quake, Counter strike etc. Punkbuster is a tool that fights back against these 'hackers'.
Many FPS games provide weapons such as grenades that can kill unseen players, but such explosives rely on splash damage rather than direct hits. However, in a game like Counter-Strike, certain guns can shoot through walls, rifles in particular. This allows them to see the enemy and kill them instantly, unseen. On Steam, the online play system for Counter-Strike, the offender (depending if the hack is detected by VAC or not) will be banned permanently from all VAC servers.
Other types of wallhack include "wallwalk", in which players become able to see through and walk through walls. Sometimes referred to as "ghostmode", this hack enables sneak attacks on anyone walking by the wall, as the player inside the wall is essentially invisible.
A final, perhaps more malicious, form of wallhack is "noclip". Noclip is a cheat code in many games that disables clipping (see collision detection), allowing the player to fly by holding down the "jump" key, move through walls, and causes shots to go through the character. This comes in varied forms, some of which are less unfair than others. Although this cheat is theoretically unable to be used on multiplayer, in some games it can be enabled for online use by hacking the game files (in others this will result in automatic death, because the server or other players' computers will realize that the cheater's actions are impossible and will boot him due to the desynchronized game state). Even if possible, noclipping is a very blatant cheat, and so the cheaters usually end up quickly banned from the server that they use their exploits on.
Contents |
[edit] History
Some of the first wallhacks to appear were for the first-person shooter such as call of duty
Quake by id Software. These often worked by altering the map file to have transparent walls rather than making use of any external programs or patches. Games released after Quake generally detected and blocked such modifications to game content to prevent that method of wallhacking.
Valve's hit game Half-Life brought wallhacks into the mainstream to some extent, with both Team Fortress Classic and Counter-Strike being hugely popular multiplayer modifications that were fairly easy to create wallhacks for. The earliest wallhacks for Half-Life — and similar games — worked simply by making everything the engine rendered partially transparent. Since game engines themselves rarely do accurate occlusion checking and instead rely of the graphics hardware's depth buffer to do so, the result was that the player was able to see through the newly-transparent walls to the objects behind that would not normally be visible. The major drawback of this kind of wallhack was the lack of clarity in viewing the game — some players found that the transparency of every surface made it hard to spot things in the game, even to the extent that they would occasionally walk into walls without seeing them or try to shoot players through an unseen wall. This is often known as the Flautz-style wallhack because many people first encountered it in a cheat by a programmer known as Flautz.
Slightly later wallhacks for Half-Life worked by hooking the engine's call to the OpenGL API function glBegin
and checking to see if the engine was about to render a triangle or a quad. Game entities and player characters are drawn with triangles, while the level geometry itself is drawn with quads. If the wallhack detected a triangle about to be rendered, it would call glDisable(GL_DEPTH_TEST)
to prevent the graphics hardware from performing a depth-buffer comparison before rendering each pixel. In this way, the wallhack would cause game characters and game entities to appear on top of all map geometry (walls, floors and ceilings) regardless of their logical position within the world. One of the drawbacks of this method was that the lack of depth-testing on game entities and characters meant that they were often rendered incorrectly, with the backmost polygons of a model being rendered above the frontmost ones simply because they were sent through the graphics pipeline last. This is often known as the XQZ-style wallhack because it was first popularised in a cheat called XQZ2.
The most recent Half-Life wallhacks produce an effect that is almost identical to that of the previously-mentioned XQZ-style wallhack, but without the visual corruption that results from disabling depth-testing. This most recent method takes advantage of the render queue of Half-Life-based mods. Half-Life renders all map geometry first, then renders all game entities and characters. Thus, there is a period of time when the map geometry is rendered fully but rendering of entities has not started. The wallhack effect is achieved by clearing the depth buffer at this point, so that all game entities are then drawn onto what the graphics hardware believes is a clear screen. Depth-testing is not disabled, so the polygons of the game entities and characters are still depth-checked against each other, but are not depth-tested against the game world, since that information has been removed from the depth buffer. The result is that all game entities and characters appear on top of all map geometry regardless of their logical position within the game world — but because they are still depth-tested against each other, there is no corruption of entity models as there is with the XQZ-style wallhack. Because of their similarity and lack of corruption, this method is often known as Perfect XQZ.
Wallhacks for other games, such as Quake 3 or Battlefield 1942, usually use similar methods to those used in Half-Life. Even in games that use shaders for all rendering instead of the fixed-function pipeline the GPU still handles depth-testing internally for most operations and the same techniques remain relevant. Advances in the way scenes are ordered and sent through the render pipeline may require slight changes in wallhack methods in order to differentiate between map geometry and game objects. Both the OpenGL and Direct3D programming interfaces provide similar functionality as regards the depth buffer and depth-testing and neither one is significantly easier or harder to create wallhacks for.
In 2001, ASUS released drivers for their graphics cards which allowed wallhacking. [1]
[edit] Detection
Wallhacks can be instantly recognized by a player who physically sees the cheater's computer screen and thus are impossible to use at LAN parties. When playing over the Internet, detection is not always as simple.
Cheat detection software such as PunkBuster might find it difficult to detect wallhacks. While most wallhacks are achieved by making changes to the game's renderer or maps (and are therefore detectable), some can simply be exploited hardware issues. For example, a player might discover that an obscure combination of a specific video card and an old driver causes the game's doors and other props to be rendered in wireframe.
Wallhacking can be difficult for other players to correctly identify in-game. A wallhacker might be skilled at hiding their virtual extra-sensory perception from other players. For example, consistently shooting people in the head through walls might alert players, but just knowing that there are opponents hiding behind a box or a corner is more than enough to give that player an extra preparedness. Skilled or lucky players can be misinterpreted as wallhackers. Experienced players become extraordinarily familiar with preferred hiding places and might shoot at or bombard these spots even if they have not seen anyone there. It can be very difficult to tell a hacker from a lucky player so spectate him if you are not sure and see if he gets lucky a few times or knows where people are every time.
On the other hand, inexperienced wallhackers or players who are unconcerned with being detected will usually track players through walls and other solid objects, often in preference to potentially dangerous areas on which a "blind" player would concentrate. This behaviour may be observed if the game has a spectator mode, or, more recently, in games such as the Call of Duty series, if a "kill-cam" or similar feature is active. This feature shows the last few seconds of a player's life from the first person perspective of their aggressor, thus making wallhacking extremely obvious to the player killed.
Wallhacking gives an unfair advantage in multiplayer games.
[edit] See also
[edit] External links
- Admin Spectator ESP, an AMX Mod X plugin for Counter-Strike. (helps admins to see the enemies of a player they are spectating)
- Game-Deception - A programming forum dating back several years that contains cheat programming tutorials and discussion of new techniques as they are developed.