The BASHandSlash.com Feed

BASH Webcasts

Sunday, March 25, 2007

You're busted, punk!

As mentioned in the first few editions of BASH, Call of Duty 2 uses Evenbalance's Punkbuster technology to prevent players fraudulently gaining the upper hand during online games. Servers are trying to combat continued cheating by tightening up Punkbuster settings, so this is a good time to learn a bit more about this great technology.



The addition of Punkbuster, at Cod2 patch 1.2, has definitely stemmed the tide of cheating - although it did not stop it - and it gave the cheaters something to think about: a global ban! Yes, hackers and cheaters can be prevented from playing CoD2 on any Punkbuster enabled server. Violators are written onto a master ban list (MBL).

The following is taken from a Punkbuster press release on planetcallofduty.com

1) Cheaters detected by Punkbuster software from all of our admin member servers, are collected, sorted and updated to the Master Ban List (MBL) automatically.
2) Your server's ban list is automatically updated and kept current with our automated download feature at a time and period of your choosing. A cheater caught today will not be playing within hours on all servers using the MBL, Period!
3) The Auto-MBL FTP updating software is available for both Windows and Linux-based servers. (Or update manually, if the auto-updating feature is not possible with your server operation directly).
4) Screen shot MD5 checksums and timestamp are automatically stored in our repository, so that there will never again be a doubt as to the authenticity of a PB screen shot. It eliminates accusations of fake screen shots. PunksBusted's repository will verify it's integrity without question.
As mentioned in Episode 3 of BASH, PB does seem to create annoying lag spikes when it attempts to call home as it reports on how honest a player you are. These spikes can be reduced as follows:
To modify the number of times punk buster calls home create the following file, pbcl.cfg in the following subdirectory.

C:\Program Files\Activision\Call of Duty 2\pb

Use Wordpad (Windows OS) and copy the commands I've typed below.
There are 5 lines in total you have to include in this file.

pb_sleep 500
PB_SsLog 1
PB_SsSave 0
pb_LogToFile 0
pb_logmd5tool 1

The above settings are suggested in Evenbalance's Tech Support link:

PB Tech Support

If you are having problems with PB - you have been kicked off servers but you've not done anything wrong, you might try checking if you have the current version of the code. Sometimes, if the download is interrupted the software might get corrupted or not updated properly. You can upgrade manually here:

PB Download Files

these files have to be installed manually, if you do not think you are up to the task you can try downloading the manual installer:

PBSetup

The Punkbuster Player Manual is a must read here is a link:

PB Player Manual


The latest versions of Punkbuster allows player variable monitoring. From the Punkbuster Server-side Manual we have this definition:

PunkBuster provides the ability for Server Admins to specify a list of acceptable player cvar value ranges while playing on the Game Server. When each player connects to a PB-Enabled Server, the PB Client will download the list of acceptable cvar ranges from the PB Server and will check all of the player's cvars for compliance. The player is warned about any cvars that are unacceptable to the Game Server. The player then will have a few seconds to make any necessary corrections before the PB Server will begin methodically and regularly checking that player's cvars against the list of acceptable ranges. If a player is found to have a cvar that is outside the acceptable range for that cvar, then that player will be removed from the game immediately.

Just recently I found myself with a problem when logging into a server that had tightened up it's cvar policy. I was booted from the server due to a "cvar com_maxfps=0" issue. This "tweak" has been known for sometime and has never been considered a cheat. This variable can be set from [0 - 1000] - It determines the maximum frames per second (fps) possible. If set to 0, it disables the framerate cap. Any value higher than 0 though, caps your FPS to that level. The main reason to use this command would be to smooth framerate fluctuation, as framerate spikes can cause jerky gameplay.

In my opinion, this tweak is a known quantity in the gaming community and should not be considered illegal; however, the server wanted to standardize player variables for competition reasons and thus used PB to enforce their regulations.

I quickly modified the cvar (client variable) by editing the file in which it is found:

Program Files/Activision/Call of Duty 2/Main/Players/"Your name"/config_mp.cfg file.

I simply opened the file and re-wrote the variable to "cvar com_maxfps=85" which rectified the issue. Here is more information on PB's cvar monitoring:
Why do I get messages on some servers telling me that I have cvar violations and what should I do about it?

A cvar is a game setting. Cvars can be used to customize the game, but cheaters sometimes abuse cvars to exploit holes or bugs in the game in order to cheat. Admins of PunkBuster Servers have the ability to add specific recurring checks for players' cvar values during gameplay. If you have downloaded or written game scripts to automate tasks, then those scripts almost certainly will add and/or change cvars in your system. You will receive a warning if a cvar on your system is not in the range allowed by the Admin of the Game Server to which you are currently connected - the warning will also include the allowed range of values for the specified cvar. If you do not heed the warning, then after a few seconds or minutes, the PunkBuster Server will raise a violation and remove you from the Game Server. To change the current value of any cvar, press the tilde (~) key to bring down the game console, and then type the cvarname followed by a space and the new value, then press the Tab key and then the Enter key. For example, entering "cg_shadows 0" as a command will set your cg_shadows cvar to the value of 0. The Game automatically saves most cvar changes so that the next time you play, any changes from a previous session will still be in effect. You may request a list of all checked cvar rangess from the server using the "pb_cvarlist" command. You will see all checked cvars, the allowed ranges and also any of your cvars that are currently set outside the allowed ranges.


CVAR VIOLATIONS REFERENCE LIST

Here is a list of Cvar violations and there numbered catagories:

Remember not all violations are hacks or cheats,

Technical Violations: (Resolution: Reinstall PunkBuster from the latest game update patch)
#101 - Communication Failure
#102 - Communication Failure
#131 - Initialization Failure
#132 - Protocol Error
#141 - Distress (This indicates a problem trying to update to the latest version of PunkBuster - it may indicate a problem reaching one of our Internet-based Master PB Servers which can be caused by firewalls, router problems, etc.)

Miscellaneous Violations:
#111 - Bad Name (Resolution: Change player name or play on a different server)
#112 - Too Many Bad Names
#113 - Too Many Name Changes (Designed to eliminate name change spamming)
#114 - Protected Name (Resolution: Change player name or play on a different server)
#121 - Negative Score Too Low (usually from Killing Teammates)
#151 - Extended ASCII Characters in Player Name (Resolution: use regular letters, numbers and symbols in the player name or play on a different server)
#9001 - CVAR value failed range check (see the FAQ for more info)

Integrity Violations:
When PunkBuster is unable to verify that a player's gaming environment is functioning properly and/or has not been alterred, an Integrity violation is raised. This also involves the detection of modified game or PunkBuster files. These violation numbers are between 10000 and 29999.

Cheat/Hack Violations:
When PunkBuster detects a cheat or hack by repeated positive identification on a player's computer, a violation is raised. These violation numbers are 50000 and higher. Families of cheats are listed below. Resolution: Remove cheats and hacks from the computer.

I have included some links to videos showing what the hacks look like. Click on the links.

#50000s - Aimbot
#60000s - Wallhack
#70000s - Multihack
#80000s - Gamehack
#90000s - 'Cheat' Video Drivers
#100000s - Speedhack
#110000s - Autofire
#120000s - Game Hook
#130000s - Attempted PunkBuster Hack


Also see:

Tweaks