View Single Post
  #1  
Unread 31st January, 2006, 09:41 PM
AnthraX's Avatar
AnthraX AnthraX is offline
Administrator
 
Join Date: Jun 2004
Location: Ghent (Belgium)
Posts: 1,380
Default [Release] AnthChecker v1.37

Code:
##############################################################################
#                            AnthChecker v1.37                               #
#                            by )°DoE°(-AnthraX                              #
##############################################################################

1) What is it?
--------------

AnthChecker is an advanced unrealscript-based cross-platform packagechecker.

|| Please take a few minutes to read this document, it will spare you and me a lot
|| of trouble.

2) What does it do?
-------------------

AnthChecker will validate every client (including clients that run Linux/MacOS)
after they enter the server. Depending on the server's settings AnthChecker will:
    * Perform selfchecks to prevent clients from redirecting/bypassing the checking routines
    * Perform CRC (Type 1) checks on files that should be identical on the server and on the client (files like UTPure.u)
    * Perform CRC (Type 2) checks to identify the client's skintextures and kick if they're hacked
    * Perform MD5 checks to identify the client's renderdevice and kick if it's hacked
    * Perform MD5 checks to identify the client's libraries and kick if they're hacked
    * Scan for disallowed files

3) Installation
---------------

To install AnthChecker on your server:

1. Unzip the contents of this zip package in your server's system folder. 

2. Open your server's unrealtournament.ini file and find the line that reads "[Engine.GameEngine]".

3. Add these lines under it:

    ServerActors=AnthCheckerS_v137.ACActor
    ServerPackages=AnthCheckerC_v137
    
4. Move to the end of your UT.ini file and add these lines 
   (you can find the explanation of the settings under 4) Settings):    
    
    [AnthCheckerS_v137.ACActor]
    bKickUnknownRenderer=true
    bKickUnknownLibrary=true
    bKickUnknownSound=true
    bKickUnknownSkin=true
    bBroadCastJoin=true
    bBroadCastIPs=false
    bExternalNotify=false
    bSelfCheck=true
    bPureCheck=true
    bEUTCheck=false
    bSkinCheck=true
    bSoundCheck=true
    bShowConsoleMessages=true
    TimeOut=30
    CheckDelay=3.0
    bReportCheats=True
    bReceiveUpdates=True
    Packages[0]=
    Packages[1]=
    Packages[2]=
    Packages[3]=
    Packages[4]=
    Packages[5]=
    Packages[6]=
    Packages[7]=
    Packages[8]=
    Packages[9]=
    bExternalLogs=true
    LogPrefix=
    LogPath=
    ACLinkMode=2
    ACDelay=5
    
5. Restart your server

4) Settings
-----------

You can easily change the AnthChecker settings by opening your server's ini file and changing
the lines you added at the end.

    bKickUnknownRenderer : set to false if you don't want to kick clients with an unknown renderdevice
    bKickUnknownLibrary  : set to false if you don't want to kick clients with unknown libraries
    bKickUnknownSound    : set to false if you don't want to kick clients with unknown soundpackages
    bKickUnknownSkin     : set to false if you don't want to kick clients with unknown skinpackages
    bBroadCastJoin       : set to false if you don't want to broadcast every client's nickname/renderdevice/operating system after the validation
    bBroadCastIPs        : set to true if you want to add the client's IP's to the bBroadCastJoin messages
    bExternalNotify      : set to true if you want AnthChecker to send playerjoin reports to other mods (requires compatible mod)
    bSelfCheck           : set to false if you don't want to perform a crc check on the anthchecker client package
    bPureCheck           : set to false if you don't want to perform a crc check on the utpure package
    bEUTCheck            : set to true if you want to perform a crc check on the EUT package
    bSkinCheck           : set to false if you don't want to perform crc checks on the skintextures
    bSoundCheck          : set to false if you don't want to perform a crc check on the female2voice package
    bShowConsoleMessages : set to false if you don't want to display what's going on in the client's console
    bReceiveUpdates      : set to false if you don't want to receive info about new renderdevices from the AnthChecker masterserver
    bReportCheats        : set to false if you don't want AnthChecker to report cheating attempts to the AnthChecker masterserver
    TimeOut              : ammount of time the client gets to finish the checks (in seconds)
    CheckDelay           : ammount of time between the playerjoin and the start of the checks (in seconds)
    Packages[x]          : you can manually add files to crc (type 1) check here
                           syntax: <file extension>,<filename>,<packagepercent (1-255)> (*)
    bExternalLogs        : set to false if you don't want to log AnthChecker's kicks to external files
    LogPrefix            : Prefix of the external logfiles (default: [AC])
    LogPath              : The path in which the external logfiles are stored (default: ../Logs/)
    ACLinkMode           : set to 1 if you want to delay the updatescheck
    ACDelay              : ammount of time before the updatescheck begins (in seconds, only needed if ACLinkMode=1)
 
 !! Important !!: Due to the limitations of the unreal engine, you're not advised to manually add files.
 		  If you do decide to do so, use a small packagepercent, UT will usually crash after crc checking
 		  10Mb of data.
    			  
 (*) if for example you want to perform a crc type 1 check on the 10 first bytes of every 255-byte block of CTF-Gauntlet.unr, 
 you'd have to add "unr,CTF-Gauntlet,10" (without the quotes)
 
5) History
----------

v1.37 (Public):
    * [Changed] Removed an instruction in the HTTP Client that might have caused crashes on some linux servers
    * [Added] Options ACLinkMode and ACDelay. These options can be used by those who experience problems with the auto-updates.

v1.36 (Internal):
    * [Fixed] Bug that prevented the manual package adding option from working.

v1.35 (Internal):
    * [Changed] Disabled the cachecleaner for MacOS. This will resolve type 3 kicks on MacOS 9.x.

v1.34 (Public):
    * [Fixed] Security flaw in the clientcode. Could have been used to redirect CRC Checks.
    * [Fixed] Timeout issues caused by a typo in the serverside code.
    * [Added] Option bKickUnknownSound
    * [Added] Option bKickUnknownSkin

v1.33 (Public):
    * [Changed] Minor security update in the clientcode

v1.32 (Internal):
    * [Changed] Improved the active renderdevice detection (should resolve some type 1 kicks)
    * [Changed] Some improvements in the actor code
    * [Added] Hashes for a lot of libraries (UTCacheCleaner, UTWinAmp, UTDCv17b, OldUnreal MediaPatches, UT v436 Linux, Editor binaries)
    * [Added] Posibility to broadcast playerjoins to other mods (bExternalNotify option)
    * [Added] bEUTCheck option
    * [Added] bExternalLogs option
    * [Fixed] Bug in the HTTP updating code
    * [Fixed] Bug that caused timeouts if bGUIDCheck was still in the ini file

v1.31 (Public):
    * [Fixed] Critical bug in the packet handler that caused random timeouts for some players

v1.30 (Public):
    * [Added] Packet handler that allows the client to send long strings to the server without making it crash
    * [Added] Extra selfchecks to prevent CRC redirection
    * [Added] New hashes
    * [Added] Option CheckDelay to specify the number of seconds between the playerjoin and the start of the checks
    * [Added] Checks to detect illegal libraries loaded by the client, some cheatcoders use this exploit to bypass UTDC
    * [Added] Option bKickUnknownLibrary
    * [Added] Server receives updated library whitelists from the masterserver (only if bReceiveUpdates is set to true)
    * [Changed] Option bKickUnknown renamed to bKickUnknownRenderer
    * [Changed] AC no longer uses a mutator for client-server communication
    * [Changed] Removed Type 8 (GUID) kick
    * [Changed] Clients can see which files are being checked by AnthChecker
    * [Changed] Rewrote some routines for better performance
    * [Changed] Forced the client to regenerate GUID if it's not valid
    * [Changed] New cache cleaner code for mac/linux -> no more reconnect window
    * [Fixed] Type 1 kicks caused by a bug in the pathsparser
    * [Fixed] Some false type 7 (disallowed files) kicks
    * [Fixed] MacOS issues
 
v1.29 (Public):
    * [Fixed] Some false GUID kicks
    * [Added] New renderhashes
 
v1.28 (Internal):
    * [Changed] Rewrote some laggy core routines
    * [Changed] bSkinCheck now picks 2 random skins to check instead of 7

v1.27 (Public):
    * [Fixed] Players getting kicktype 8 because of the slow connection between the UT server and the masterserver
    * [Fixed] Illegal GUID's for linux clients with v451
    * [Changed] Linux/Mac Cachecleaner can move multiple files at one time

v1.26 (Internal):
    * [Added] Routine to find cached files even when the cache.ini file is corrupted
    * [Added] Option bBroadCastIPs
    * [Added] AnthChecker version gets logged to the external logs
    * [Changed] Players get to see the URL of my forum + AnthChecker version/build when they get kicked

v1.25 (Internal) :
    * [Added] Extra GUID check
 
v1.24 (Internal) :
    * [Fixed] bug in masterserver encryption
    * [Fixed] bug in the skinidentification (players with unknown skins were allowed to enter the server)
    * [Fixed] Linux/Mac timeouts
    * [Fixed] Critical bug that broke every mutator loaded after AnthChecker (this also affected SmartCTF/BDBMapVote/3dfxmapvote/...)
    * [Fixed] bug that caused a lot of type 1 kicks (failed to generate checksum) for cached files (only happened for clients with corrupted cache.ini files)
    * [Added] options LogPath and LogPrefix for the external logs
    * [Added] Support for clients that have multiple system/textures/... folders
    * [Added] Blocked "EnhancedSkins"
    * [Added] New hashes for several renderers
    * [Added] GUID verification (so far, this is only used for the masterserver)
    * [Added] AnthChecker automaticly adds itself to the serverpackages list if needed
    * [Changed] names of the Ref1 skins to Ref 1/Warez
 
v1.23 (Public) :
    * First public release
 
6) Thanks to
------------
 
- Azazel & UnrealAdmin       : for hosting the UTGL masterserver and my forum
- Nuffy & Magma              : for providing gamearena.co.uk betatest servers
- Cratos                     : for providing renderdevices and a betatest server
- TNSe                       : for advice/ideas/help
- Just_Me                    : for advice/ideas/help
- Sardukar                   : for advice/ideas/help
- Obsidian & Rush & Neopythe : for linux betatesting
- ZorroTheFox & The_Dave     : for MacOS betatesting
- Petr Jelinek	             : for the original MD5 code

 
7) Feedback & Support
---------------------

http://www.unrealadmin.org/forums/forumdisplay.php?f=176
I've just uploaded a new build of the serverfile. Changes Build 3:
Code:
* [Fixed] Server crashes due to the auto-updater
* [Added] New library definitions
* [Added] Optional debug messages from the auto-updater
Changes Build 4:
Code:
* [Fixed] HTTP Updates not working correctly
* [Added] New hashes (UTGLR d3d 1.3, UTDC20b, ...)
* [Added] Extra routine to kick players with a hacked AC (was already present in v1.38 build 7)
* [Changed] HTTP Updater class replaced by the v1.39 build
Attached Files
File Type: zip AnthChecker_v137.zip (38.1 KB, 1111 views)
File Type: zip AnthCheckerS_v137_Build2.zip (20.4 KB, 282 views)
File Type: zip AnthCheckerS_v137_Build3.zip (21.4 KB, 218 views)
File Type: zip AnthCheckerS_v137_Build4.zip (21.7 KB, 266 views)

Last edited by AnthraX : 1st August, 2007 at 07:01 PM.
Reply With Quote