UT2003 Interim Security Mutator
Release 2.11 (c) 2002-2003, Epic Games


Description
UTSecure is a simple mutator that designed to perform a more detailed check of various packages.  Its goal is to provide additional protection in between normal patch cycles by allowing server admins to perform more rigerous checking of given files. 

 

Targets
This interim release targets the following cheats:
  • Skin hacks and external Aimbots that use them
  • Generic checking of any UT file
  • Protects against SET command tweaking 

 

Installation
 The .zip that you downloaded contains 4 files.
  • UTSecure211.u the main package file.
  • UTSecure211.int is a needed system file
  • UTSecure211DefINI.txt is a sample INI.  You should add these values to your UT2003.ini file
  • UTSecureHelp211.htm is this file

Step 1: You should unzip the archive directly in to your root UT2003 directory with "expand folders" turned on.  This will place the first 3 files in your \System subdirectory and the last in \Help.

Step 2: Open your UT2003.ini (or whatever configuration INI you are using).

Step 3: Find the section [Engine.GameEngine] and add the following two lines anywhere in that section.

ServerPackages=UTSecure211
ServerActors=UTSecure211.UTSecureServerActor

You should remove any references to older versions of UTSecure at this time.  

Step 4: Add the changes found in UTSecure211DefINI.txt to the end of your INI file.  Note that with 200, I've made a huge change in the configuration section so you will likely want to remove any section belonging to a previous version.  Note #2: Starting with 2.07, you no longer need to check UPlayersX1.upl.  I've moved this internal in a different way which should increase compatibilty without making it any less secure.

Step 5: If you are using UTSecure with version 2166 of UT2003, please verify the that the line "SecurityClass=UnrealGame.UnrealSecurity" is found under the [Engine.GameInfo] section of your ini file.

 

Options
The following options need to go under the enter [UTSecure211.UTChecker] in your UT2003.ini file (or whichever ini file configures your server.

The first configuration option is the Checks data set.  I have combined all of the important data for each file in to 1 entry in the ini.  The format for the entry is seen here:

Checks=(FName="",MD5="",MD5Type=x,GUID="",MaxGenerations=x, Optional=True|False)

Notice that each sub-field is separated by a comma and mixes string and numeric data. Additionally, the GUID and MaxGenerations sub-fields are only relevant when MD5Type is 2 and can be excluded in all other cases.  You can refer to the defaults for actual examples.  The available sub-fields are:

FName=<packagename>
FName=<filename>
The FName sub-field defines which files you wish to check.  How this field is handled is dependant on the MD5Type sub-field below.  If you are doing a QuickMD5, then you only need to include the package name (ex: PlayerSkins, not PlayerSkins.utx).  If you are doing a Full MD5, then you need to include the full filename and path (if needed).

Paths are relative to your \System directory and can be relative or absolute.

MD5=<16digit hash> This is the md5 that UTSecure will expect to see for this file.  There is a considerable difference between a Quick MD5 and a Full MD5 so make sure you add the appropriate one depending on the MD5Type sub-field.
MD5Type=<0|2> This sub-field determines what type of MD5 check to perform.  
  • 0 - Quick MD5.  
  • 2 - Full MD5

What's the difference?  QuickMD5 checks are much faster as it utilizes the fact that the package is already preloaded by the game.  The drawbacks are (A) it only works on UT2003 packages and (B) the package must be loaded by the game.  

Full MD5's can be performed on any file but tend to be slower.  

GUID This is a new sub-field that in the case of full MD5's will be used to perform an alternate check of a file in case that file is not found.  UTSecure will use the GUID to browse the \Cache directory looking for matches.
MaxGenerations This is the maximum number of generations of the file to check for.  It works in conjunction with GUID when a file is not found.  UTSecure will begin looking for the GUID-MaxGeneration.uxx and count backwards to 0 to maintain compatibility.  Most times this number will be set to 1.
Optional If this value is set to true and the file is either not loaded (in the case of types 0s) or not found (in the case of type 2s) then it will not be considered a bad file.

The following options are considered global.

WhatToDo=<0-3> The what to do option determines what your server will do if it detects an modified file.  The available options are:
  • 0 - Nothing, just log the transgression
  • 1 - Log the transgression and kick the user
  • 2 - Log and kick ban the user for just this session
  • 3 - Log and kick ban the user for good.

 

TimeoutSeconds This option determins now how the mutator will wait before it considers the whole system to have timed out. (ie: not functioning properly). 
bKickOnTimeout If this option is true, when a player timesout, he will be kicked from your system.
bCheckSets If set to true, UTSecure will check for the following SET command cheats:
  • Unlit Player
  • Visible Invisible Skins
  • Large Player Lights
  • Fogless Water
  • Altered sniper Zoom
  • Weapon shake hacks on default weapons
bUseCustomLog When set to true, UTSecure will attempt to send most of it's log output to the log file specified in the next variable.  IMPORTANT If you enable logging on a server running a version of UT2003 2220 or lower, it will crash on map change every time.  Later version of UT2003 have the bug fixed.
LogFileName Holds the name of the log file to output to.  This file gets stored in the \UserLogs directory.  IMPORTANT If you enable logging on a server running a version of UT2003 2220 or lower, it will crash on map change every time.  Later version of UT2003 have the bug fixed.

 

 

Obtaining an MD5 of a file
IMPORTANT NOTE:: You can only obtain the MD5 using the latest beta patch (as of 10/27/02).

There are two different types of MD5's that can be generated.  QuickMD5 rely on the fact that the package is already loaded.  This is a very fast MD5 that's great for large files (like PlayerSkins.utx).  The downside is it's only available for actual UT2K3 pacakges.  Full MD5's generation a full fledge MD5 hash of any file. You can obtain a Full MD5 of any file by using the following ucc commandlet:

UCC mastermd5 -f <filename>

This will give you the 16 digit MD5 you need for the MD5 field above.  Please keep in mind that only files that will not change can be checked using UTSecure.  Do not attempt to check core .U files (they are already well protected).

You can obtain a quick MD5 of any package by using the ucc commandlet:

UCC mastermd5 -q <packagename>

Rember that you do not need to include the path or file extension for quick md5's as UT2K3 will uses it's internal package loading code to open it.