/b3-plugin-haxbusterurt

B3 plugin for the iourt41 parser that checks players' guid validity

Primary LanguagePython

HaxBusterUrt plugin for Big Brother Bot (www.bigbrotherbot.net)
===============================================================

By Courgette


Description
-----------

This plugin helps detecting cheaters in Urban Terror game servers.
It does hax detection by checking GUID correctness or the port
players are connecting from.

When a cheater is discovered, several actions take place :
 * if admins are playing, they get notified by private message
 * the cheater is given a notice, so it can be found in Echelon easily
 * a new B3 event is fired : EVT_BAD_GUID or EVT_1337_PORT so other plugins can act upon
 * if you choose so in the config file, the player is kicked, tempbanned, or permbanned

When an admin connects to the game, he is given the list of detected cheaters (if any)


 *~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~**~*~*~*~*~*~*~*~*~*~*~*~* 
 *                                                                *
 *  NOTE: some admin organisations / leagues do not recognize     *
 *  this method as a proof of hack !                              *
 *                                                                *
 *  For many, the only way to prove hacking is to take a demo     *
 *  of the suspected player.                                      *
 *                                                                *
 *~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~**~*~*~*~*~*~*~*~*~*~*~*~*

 *~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~**~*~*~*~*~*~*~*~*~*~*~*~* 
 *                                                                *
 *  NOTE 2: Just a small percentage of hacking players do have    *
 *  a corrupted GUID or connects from port 1337.                  *
 *  Thus this plugin wont get rid of most hackers on your server. *
 *  At the time of writing, the best way to avoid cheaters is    *
 *  to enforce known cheaters banlists.                           *
 *                                                                *
 *~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~**~*~*~*~*~*~*~*~*~*~*~*~*


Changelog
---------

15/12/2009 - 0.1 - Courgette
   * detects when guid is not a ioUrT guid nor a Q3 guid
   * upon client connect with bad guid :
       o give the player a notice so it can be found in echelon
       o pm ingame admins
   * upon admin connection : pm admin of eventual ingame hackers
15/12/2009 - 0.2 - Courgette
   * will fire event b3.events.EVT_BAD_GUID when bad guid is found so other
     plugins can react to such event
   * when plugin is enabled (after having been disabled) it checks all new players
   * check all connected players at start
   * make sure a given player is checked only once
25/02/2010 - 1.0 - Courgette
   * consider players whose guid equals their ip to have unlegitimates guid
06/05/2010 - 1.1 - Courgette
   * add a config file (optional)
   * you can choose in the config if you consider a guid which is equals to
     the IP legitimate or not
   * you can choose in the config if you want to kick bad guid
07/05/2010 - 1.2 - Courgette
   * rename the config file option allow_guid_equals_to_ip to allow_empty_guid
     to make more sense. (B3 uses players'IP for guid if cl_guid is empty)
   * cache check result for client having empty guid
   * Does not accept empty cl_guid by default
 03/03/2011 - 1.3 - Courgette
    * ingore bots when checking clients
 05/03/2011 - 1.3.1 - Courgette
    * better bot detection
 10/11/2011 - 1.4 - Courgette
    * can detect players connecting from port 1337
    * can define in config which kind of penalty apply (none, kick, tempban, permban)


Installation
------------

 * copy haxbusterurt.py into b3/extplugins
 * copy plugin_haxbusterurt.xml to your config folder
 * update your main b3 config file with :

<plugin name="haxbusterurt" config="@conf/extplugins/plugin_haxbusterurt.xml"/>


Support
-------

Support is only provided on www.bigbrotherbot.net forums on the following topic :
http://www.bigbrotherbot.net/forums/releases/hax-buster-(urt)/