Results 1 to 10 of 28

Thread: [Q3 FIX] Q3 fake clients fix

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Global Mossaderator Mitch's Avatar
    Join Date
    Nov 2012
    Posts
    654
    Thanks
    204
    Thanked 450 Times in 305 Posts
    I found a better way to detect fake clients. It also uses last msg but also the last connect time.
    The fake clients only connect to the server and nothing else. So after they connect the lastmsg time is the same as the last connect time.

    This is part of the last function they run:
    PHP Code:
    Com_DPrintf"Going from CS_FREE to CS_CONNECTED for %s\n"newcl->name );

    newcl->state CS_CONNECTED;
    newcl->nextSnapshotTime svs.time;
    newcl->lastPacketTime svs.time;
    newcl->lastConnectTime svs.time
    Proof
    PHP Code:
    Fake clients:
    [
    ipconnect1050/1050 (4GtXwfgRl3)
    [
    ipconnect1050/1050 (2S)
    [
    ipconnect1050/1050 (5II)
    [
    ipconnect6050/6050 (Z4sjLDJe4)
    [
    ipconnect6050/6050 (4GtXwfgRl3)
    [
    ipconnect6050/6050 (2S)
    [
    ipconnect6050/6050 (5II)

    Me:
    [
    ipconnect1050/1000 (Mitch||OwnZ. ^7[^456^7]) (after 1 s)
    [
    ipconnect6050/4000 (Mitch||OwnZ. ^7[^456^7]) (after 6 s
    PHP Code:
    lastconnect std\player::getLastConnectTime();
    lastmsg std\player::getLastMsg();
    std\io::println("[" ip "] connect: " lastconnect "/" lastmsg " (" self.name ")"); 
    PHP Code:
    getLastConnectTime() { return closer(433self getEntityNumber()); } 
    https://github.com/M-itch/libcod/com...8d28c88ac75c45
    http://znation.nl/libcod

    PHP Code:
    kickFakeClients(ip)
    {
        
    self endon("begin");
        
    self endon("disconnect");

        if(
    self getGuid() != 0)
            return; 
    // cd key can only be used once

        
    wait 5;

        
    lastconnect std\player::getLastConnectTime();
        
    lastmsg std\player::getLastMsg();
        
        if(
    lastmsg == lastconnect)
        {
            
    ip std\player::getIP();
            
    std\io::println("[" ip "] connect: " lastconnect "/" lastmsg " (" self.name ")");
            
    iprintln(self.name "^7 connection timeout.");
            
    kick(self getEntityNumber());
        }

    Last edited by Mitch; 26th February 2014 at 13:48.

  2. The Following 2 Users Say Thank You to Mitch For This Useful Post:

    RobsoN (26th February 2014),smect@ (26th February 2014)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •