Release 1.16b, Copyright 2003 by Wormbo
If you have any problems with Anti TCC, please have a look at the Anti TCC homepage or post in the Anti TCC Forum.Anti TCC is a mutator designed to perform a more detailed check of various packages and clientside settings. Its main goal in UT2003 was to detect SET command cheats, the so-called temporary console commands or "TCCs". This type of check is not implemented in Anti TCC for UT2004 though, since Epic turned on the masterserver feature which keeps out SET command users.
This release targets the following cheats and potentially unwanted actions:
The ZIP archive you downloaded contains 8 files:
If you want to redistribute Anti TCC, please keep this archive intact. The original download can be found at http://www.koehler-homepage.de/Wormbo/download2k4.html#AntiTCC.
ServerActors=AntiTCC116b.AntiTCCServerActorThis ServerActors entry automatically loads Anti TCC and prevents it from being removed from the mutators list. If you don't want that, don't add it. Instead manually start the Anti TCC mutator through the webadmin interface or the server's startup commandline, e.g.:
ucc server DM-Rankin?game=xGame.xDeathmatch?mutator=AntiTCC116b.MutAntiTCC,xGame.MutVampireNote: You don't need to add the ServerPackages entry. In the unpatched version of UT2004, Anti TCC will add the entry manually and in later versions the entry will not be neccessary anymore.
Make sure Anti TCC works properly by connecting to your server. The client console should display something similar to the following example.
================================================== Anti TCC v1.16 build 2004-05-19 13:12 Copyright (c) 2003-2004 Wormbo ================================================== * Your unique ID is [ 01234567-89abcdef-01234567-89abcdef ] * Player ID logging is enabled * Initial Check Timeout: 120 seconds * Check Timeout: 30 seconds * Reaction to insecurities: Kick * Anti TCC is running in single MD5 mode * Admins may log in silently * Verified AntiTCC116b (default) * Verified HumanMaleA (default) * Verified HumanFemaleA (default) * Verified Jugg (default) * Verified Aliens (default) * Verified Bot (default) * Verified SkaarjAnims (default) * Verified XanRobots (default) * Verified ThunderCrash (default) * Verified Hellions (default) * Verified NewNightmare (default) * Verified PlayerSkins (default) * Verified UT2004PlayerSkins (default) * Verified DemoPlayerSkins (default) * Verified BrightPlayerSkins (default) * Verifying skins... * Verifying classes... You have been validated successfully.
Everything Anti TCC displays in the client's console is also written to the file AntiTCC_ClientConsoleLog.log in the client's UT2004\UserLogs directory.
You should check the server's log file (usually ucc.log or server.log) for Anti TCC warnings. Anti TCC will tell you if something went wrong or whether your configuration might cause problems. With the default configuration something like this should be logged to the server's main log file (usually server.log, ucc.log or ut2004.log):
AntiTCC: ================================================== AntiTCC: Anti TCC v1.16 build 2004-05-19 13:12 AntiTCC: Copyright (c) 2003-2004 Wormbo AntiTCC: ================================================== AntiTCC: * Preventing Fast Weapon Switching AntiTCC: * Note: Silent admin login is only available for advanced admin AntiTCC: * Admin faker name is foy37wXb66 (DM-Rankin.PlayerReplicationInfo) AntiTCC: * Initializing file checks... AntiTCC: * Calculating Full MD5 for AntiTCC116b... AntiTCC: [ 485e2e778ffcbebd1f2722ed8f7fd002 / 4C13568011D8A51D30000C8CB7637684 ] AntiTCC: * Player IDs are logged to PlayerIDsINI AntiTCC: * Securing PlayerControllers AntiTCC: * Logging output to AntiTCC_(xDeathMatch)_(DM-Rankin)_(2004-05-19)_(13-20) when neccessary
Anti TCC offers some new console commands. They only work ingame and not from the webadmin interface.
The following options need to go under the enter [AntiTCC116b.AntiTCCSecurity] in your UT2004.ini file (or whichever ini file configures your server).
Checks | The first configuration option is the
Checks data set. All of the important data is combined into one entry for
each file to check. The format for the entry is seen here: Checks=(FName="file",MD5=("0123456789abcdef0123456789abcdef"),MD5Type=0|2,Optional=True|False)Notice that each sub-field is separated by a comma and mixes string and numeric data. By default this list is empty because all relevant MD5 checks are hard-coded. IMPORTANT: Make sure there are no whitespaces in the Checks entries. The available sub-fields are:
|
---|
The following options need to go under the enter [AntiTCC116b.MutAntiTCC]
in your UT2004.ini file (or whichever ini file configures your server).
They can also be changed from the web admin interface and you can put them in
configuration profiles to quickly switch between
different configurations.
bAllowClientConsoleMessages | Anti TCC displays messages in the client's console and log file about security checks. This option can disable the console messages. |
---|---|
bBroadcastConsoleErrorMessages | Enables or disables Anti TCC's red console warning messages stating the reason for a kick. This will not display a client console warning when bAllowClientConsoleMessages is disabled, but the warning will still be logged in the client's log file. |
bMessageBeep | Enables or disables the beep sound played when Anti TCC detects illegal files, settings or activities on a client. |
bBroadcastClientScreenMessages | Enables or disables Anti TCC's a red warning message in the center of all clients screens when a client is kicked by Anti TCC. |
bDisplayProgressMessages bDisplayProgressScreenMessages |
bDisplayProgressMessages enables or disables Anti TCC's
progress messages in the center of the screens during initial checks. bDisplayProgressScreenMessages specifies whether the progress messages should be displayed in the center of the screen or in the chat area. |
bClientsMayGetIDs bShowOnlyFirstPartOfID bShowOnlyLastPartOfID |
bClientsMayGetIDs determines, whether
clients may see other players' CD key hashes. Setting this to false will
disable the ShowIDs and Whowas commands and disable the ID
display in Whois. bShowOnlyFirstPartOfID will hide everything except the first eight digits of the player ID, bShowOnlyLastPartOfID will hide everything except the last eight digits. If both are False the whole ID is displayed, if both are True the middle part of the ID is replaced with astrerisks. Usually half of the player ID should be enough identify a player. Showing only parts of the ID prevents malicious users to abuse the keys, but still allows propery identification. |
bClientsMayGetNames | Determines, whether clients are allowed to view other players' alias names. Setting this to false will disable the Whowas command and disable the alias name display of the Whois command. |
bShowInServerDetails | Tells Anti TCC whether it should show up in the server details. |
bCheckSkins | If set to True, Anti TCC will perform checks to ensure neither the player skins listed in XPlayersL1.upl and XPlayersL2.upl nor the default skin packages are modified. |
bCheckMapMD5 | If set to True, Anti TCC will automatically do a full MD5 check of the map played before performing other file checks. |
bCheckFullMD5 | If set to True, Anti TCC will automatically check all default
.U files' FullMD5s. Please note that this check only supports client versions
3186 (unpatched), 3197 beta, 3200 beta, 3203 beta and 3204 (beta and official). For other client versions (i.e. newer beta and official patches) this check will fail in Anti TCC v1.15! |
bSingleMD5Mode | This setting was added by request from ClanBase so
serveradmins can proof they don't exploit the option to specify multiple
MD5s. When enabled, it makes Anti TCC ignore all but the first MD5 value
specified for each file check. Setting this to True or not having multiple MD5 reference values for any filr check will make Anti TCC display "Anti TCC is running in single MD5 mode" to clients connecting to your server. Important: You will no longer be able to have more than one MD5 value per file check if you set this to true. (This excludes the built-in skin and FullMD5 checks.) This will make it impossible to allow unpatched Mac UT2004 clients to play on your server if you told Anti TCC to perform any custom QuickMD5 checks! You should probably use Anti TCC's config profiles feature (see Using Configuration Profiles below) if you need to use this option. |
bLogClientPackages | Determines, whether a list of all packages
loaded on the client should be logged in the server's log file. This option probably is more useful in league matches than on public servers. Also note, that this only logs the packages initially loaded. Packages loaded during the match will not be listed here. |
bLogClientClasses | Determines, whether a list of all classes of clientside
objects should be logged in the server's log file. This option probably is not that useful other than for troubleshooting. Also note, that this only logs the classes of objects initially loaded. Objects created during the match will not be listed here. |
bCheckClientClasses | Makes sure certain classes used by the client are actually known on the server. This check will be repeated during the match to ensure newly loaded classes are known as well. |
bDelayMatchStart | Delays the start of a match until all players have been validated. It's probably not too wise to enable this on public servers because every time a new player joins the match start is delayed further. |
bDelayLateJoin | Prevents players from spawning until they have been secured.
The difference to bDelayMatchStart is, that the actual match start
isn't delayed, but modified clients still can't affect gameplay. It might be a good idea to disable this option in clan matches so the game can quickly continue after a player dropped and reconnected. |
bPreventFlyingLeviathan | Prevents the 'Flying Leviathan' bug exploit, where a Leviathan can be attached to any other vehicle to fly or drag it around. |
bCheckRenderSettings | If set to True, Anti TCC will make sure clients don't use a DefaultTexMipBias > 0.5 or DrawDistanceLOD > 1.0. |
InitialTimeoutSeconds TimeoutSeconds bKickOnTimeout |
(Initial)TimeoutSeconds determins how long the
mutator will wait before it considers the whole system to have
timed out, i.e. not functioning properly. InitialTimeoutSeconds is used
only for the first check, while TimeoutSeconds is used for all other
checks. Values lower than 10 seconds are not allowed. The recommended minimum value is 20 seconds for TimeoutSeconds and 60 for InitialTimeoutSeconds. If bKickOnTimeout is true, when a player times out, he or she will be kicked from the server. NOTE: A timeout doesn't imply cheating. It is usually caused by connection problems or client crashes or the client simply needs too much time for precaching game content. |
bSelfIntegrityChecks | If set to True, Anti TCC will automatically perform a full MD5 check of its own package file. |
WhatToDo | The WhatToDo option determines what your server will
do if it detects an insecurity. The available options are:
|
bEnableAdminFaker | This might fool aimbots into thinking an admin logged in.
Some aimbots have an admin login detection, which may get triggered and
automatically disconnects the cheater. To find out the player ID of a suspicious player you can use the Whowas command if player ID logging is enabled. (See SavePlayerIDsTo option below.) |
bAllowSilentAdminLogin | When enabling this option, admins will be
able to log in without appearing as administrators using the
SilentAdminLogin command. This only works with advanced admin
enabled, i.e. in [Engine.GameInfo] you have to set
AccessControlClass=xAdmin.AccessControlIni. Note: Some admin commands might not work correctly when using silent admin login. |
bNoTossWeaponSwitch | Prevent faster weapon switching by throwing the weapon and picking it up immediately while running forwards. |
bNoSpamCheck | Disables Anti TCC's chat spam filter. Note: The spam filter will not work with mods that replace the PlayerController. |
bPreventMassSuicide | Prevents suiciding in quick succession. Note: This will not work with mods that replace the PlayerController. |
bFilterPlayerNames | Removes color codes from player names.
Regardless of this setting, Anti TCC will always strip color codes for its output. Note: This may not work correctly with mods that replace the PlayerController. |
bStripMessageColors | Removes color codes from Say and TeamSay messages. Note: This will not work with mods that replace the PlayerController. |
SavePlayerIDsTo KeepPlayerIDsDays |
Set SavePlayerIDsTo to PlayerIDsINI or PlayerIDsxINI
(where x is any number between including 1 and 9) to log all players'
IDs to PlayerIDsx.ini. All other values will disable player ID logging
and also Anti TCC's Whowas command, which requires this feature. KeepPlayerIDsDays tells Anti TCC after how many days an ID should be removed from the database. You should try to find a good value here, because if there are too many IDs in the database players on the server might experience lag when a new player joins. (This value is not affected by configuration profiles.) |
AllowedConsoleClass AllowedGUIControllerClass |
The AllowedConsoleClass specifies the console class clients are allowed to use and the AllowedGUIControllerClass does the same for the client's GUIController class. |
bUseCustomLog | When set to true, Anti TCC will send most of it's log output to the log file specified in the next variable. |
bSimpleLogMode | When set to true, Anti TCC will only
create the custom log file when an insecurity or important other
problem is detected. The time placeholders of the log file name will
use the map startup time, but the first logged line will show the
time when the log file was actually opened. NOTE: Enabling this option will turn off the bLogClientPackages option. |
LogFileSaveInterval | Values greater than 0 will cause Anti TCC to close and re-open
the custom log file once in a while to force all log data to be written to disk. This option is useful when dealing with server crashes possibly related to cheats and other exploits because without it the custom log would only be saved when switching maps. |
LogFileTimestampFormat | The timestamp format to be used in the custom
log file. This option has no effect when the custom log file is disabled.
You can use the following placeholders in the timestamp:
|
LogFileName | Holds the name of the log file to
output to. This file gets stored in the \UserLogs directory and the
file extension ".log" is automatically appended. You can use one or more of the following placeholders in the filename:
|
CurrentProfile | Holds the name of the configuration profil currently in use. (see below) |
Anti TCC allows you to store more than one configuration in your server's INI file. These configuration profiles contain the same options as the [AntiTCC116b.MutAntiTCC] section of you INI file, but start with [profilename AntiTCCSettings]. To load a profile you have to add the parameter ?AntiTCCSettings=profilename to the map URL when switching maps with the ServerTravel command or on the server startup commandline, e.g.:
ucc server DM-Rankin?mutator=AntiTCC116b.MutAntiTCC?AntiTCCSettings=1on1DM(Of course, the "?mutator=AntiTCC116b.MutAntiTCC" part isn't neccessary if you run Anti TCC as a server actor.)
UCC MasterMD5 -f <filename>This will give you the 32 digit MD5 you need for the MD5 field above. Please keep in mind that only files that will not change can be checked using Anti TCC. Do not attempt to check core .U files (they are already protected and have a different MD5 in every version).
UCC MasterMD5 -q <packagename>Rember that you do not need to include the path or file extension for quick MD5's as UT2004 will use its internal package loading code to open it.
Checks=(FName="OpenGL32.dll",MD5="file not allowed",MD5Type=2,Optional=True)This will disallow the file OpenGL32.dll in the \System directory. Of course you can also specify absolute or relative paths in FName. It is important that you use MD5Type=2 and Optional=True.
Anti TCC comes with a commandlet for working with the player ID logs. I suggest
installing Anti TCC on your client and copying your server's PlayerIDs.ini to your
own UT2004\System directory to make things easier.
To run one of Anti TCC's commandlets, just type the corresponding command at the
commandline, in a DOS box, in Windows' Run dislog box, etc.
Anti TCC's player ID log files are simple ini files with a list of IDs and the names used by them. Multiple versions of Anti TCC can store IDs in the same ini file, but they will only be able to read their own logs from them unless you merge logs.
Generally an Anti TCC player ID log looks like this:
[AntiTCC116b.PlayerIDsINI] Player=(Id="0123456789abcdef0123456789abcdef",Names=("foo","bar"),LastSeen="disconnecting at 2004-02-01 13:37") Player=(Id="abcdef0123456789abcdef0123456789",Names=("Player","The_Real_Llama"),LastSeen="getting kicked at 2004-01-23 08:15)The PlayerIDsINI part in [AntiTCC116b.PlayerIDsINI] corresponds to the file name, in this case PlayerIDs.ini. IDs logged in e.g. PlayerIDs3.ini would start with [AntiTCC116b.PlayerIDs3INI].
The Anti TCC MergeLogs command combines all player ID logs (i.e. PlayerIDs.ini, PlayerIDs1.ini, PlayerIDs2.ini, etc.) into a single log file.
The Anti TCC CleanUp command merges duplicate IDs and removes empty or duplicate names from log files. This commandlet is mainly intended for log files that have been merged manually instead of with the MergeLogs command.
The Anti TCC DuplicateLog command copies a set of logged player IDs into one
or more other log files.
Important: The previous content of the log files specified will be lost!
The Anti TCC FindPlayer command lets you search for IDs and nicks in a player ID log.