Page 1 of 4 123 ... LastLast
Results 1 to 10 of 34

Thread: [RELIABLE]Anti Bad Commands (overbright shit) Solution[REBORN ONLY]

  1. #1
    Developer RyBack's Avatar
    Join Date
    Apr 2014
    Location
    In Front of the screen
    Posts
    1,603

    Default [RELIABLE]Anti Bad Commands (overbright shit) Solution[REBORN ONLY]

    hey,
    uses james's pk3 and ripped functions from elgan's strings.scr
    You can add / remove commands as u wish.
    LOGIC:
    The main thread forces cvars every frame. add cvar you want to force values too. Exploits: players can bind keys to set cvars like
    Code:
    bind w "+forward;set cheatcvar value"
    .
    The anti_over_bright_shit thread forces cvars to be "user info" cvars, meaning they are emitted to the server from the client. If a cvar doesn't match it's required value the client is kicked with a reason that is easily editable.
    Exploits: hex-editing the setu command (may damage mohaa), clientinfo overflow.

    script:
    //By RyBack , James, Elgan.
    //I don't think of any other comments so enjoy!

    level waittill spawn

    main:
    if(level.anti_over_bright_shit_check != NIL)
    end
    level.anti_over_bright_shit_check = 1

    thread anti_over_bright_shit

    /* Unused Laggy Script By James :P
    // it's nicest to make a table with the cvars
    // and their values (do not put this inside a while
    // loop as that would be very detrimental to
    // performance (cpu))

    local.vars = makeArray
    wambot 0
    wbmenu 0
    wb_aim1 99999
    wb_aim2 99999
    wb_pingprediction 99999
    wb_aimbot 0
    wb_autoshoot 0
    wb_fov 0
    r_farplane_nofog 0
    r_farplane 0
    r_farplane_nocull 0
    cg_3rd_person 0
    endArray

    local.accum = 0
    local.n = 1 // this sets how many stufftexts will be sent per frame

    while(1)
    {
    for(local.i=1;local.i<=$player.size;local.i++)
    {
    // this makes sure we will be referencing the same
    // player during our check, which now
    // covers multiple server frames
    local.p = $player[local.i]

    // set all vars, one per frame
    // of course you could change this to more
    // than one per frame for faster aimbot resets
    // (by incrementing local.n),
    // just keep in mind each line adds a little bit of lag
    // you may also include more than one
    // stufftext command in a single packet:
    // local.p stufftext "set var1 a; set var2 b"
    // but I believe the game does this optimization
    // automatically (stufftexts are accumulated
    // and then sent at the end of the server frame)
    // so afaik there's no gain from
    // combining sets manually.
    for(local.j = 1; local.p && local.j <= local.vars.size; local.j++)
    {
    local.p stufftext ("set " + local.vars[local.j][1] + " " + local.vars[local.j][2])
    // this is a little 'trick' to evenly throttle the number
    // of stufftexts per frame.
    // this will work for any number of players,
    // any number of vars and any number of n
    local.accum++
    local.accum = local.accum%local.n
    if(local.accum==0)
    {
    waitframe
    }
    }
    }
    waitframe
    }
    */
    end

    anti_over_bright_shit:
    local.vars = makeArray
    r_overbrightbits "0" "being noob and faggot and using overbrightshit"
    r_light_nolight "0" "being noob and faggot and using nolight"
    endArray
    while(1)
    {
    for(local.i=1;local.i<=$player.size;local.i++)
    {
    local.player = $player[local.i]
    local.userinfo = local.player.userinfo

    for(local.j = 1; local.player && local.j <= local.vars.size; local.j++)
    {
    local.pos = thread instr local.vars[local.j][1] local.userinfo
    if(local.pos != NIL && local.pos != NULL)
    {
    local.pos += local.vars[local.j][1].size + 1
    if(local.userinfo[local.pos] != NIL && local.userinfo[local.pos] != local.vars[local.j][2])
    {
    stuffsrv ("clientkickr " + getclientnum(local.player) + " " + local.vars[local.j][3])
    break;
    }
    }
    else
    {
    waitframe
    local.player stufftext ("setu " + local.vars[local.j][1] + " " + local.vars[local.j][2])
    }
    }
    }
    wait 3
    }
    end

    // instr
    // instr will find the position in wich a string is found at.
    // usage: waitexec global/strings.scr::instr (str string to find) ( str string ) ( int start position )
    // returns the position of string_to_find
    // eg
    // exec global/strings.scr::instr "\" "hell\o"
    // gives 4 because it starts at 0

    // if none found it will return NIL
    //stolen from elgan's strings.scr
    instr local.char local.string local.startpos:

    if(local.string == "")
    {
    end
    }

    if(local.startpos == NIL)
    {
    local.startpos = 0
    }

    if(local.startpos > local.string.size)
    {
    end
    }

    if(local.startpos < 0)
    {
    local.startpos = 0
    }
    //how many do we need?
    local.sizeneeded = local.char.size

    //need is
    local.sofar = 0

    //where we found it
    local.position = 0

    //println ( "INSTRU : Needed is: \"" + local.sizeneeded + "\" IN \"" )

    for(local.i = local.startpos; local.i <= local.string.size - 1; local.i++)
    {
    local.position = local.i - (local.sizeneeded - 1)

    //println ( "FINDING : \"" + local.char[local.sofar] + "\" IN \"" + local.string[local.i] + "\" at pos " + local.position + " so far is: " + local.sofar )
    if(local.char[local.sofar] == local.string[local.i])
    {
    //println " - found"
    //how many found?
    local.sofar++

    //is this our first matching char
    if(local.sofar == 1)
    {
    //this is our first character
    local.position = local.i
    }

    if(local.sofar != local.sizeneeded)
    {
    continue
    }

    //set out position
    //where are we at, take how many chars long the string to find was, minus 1,
    // if find 1, take 0, if find 3, we are at 1, moved 3 = 4, take 3

    //done
    end local.position
    }
    else
    {
    //reset so far
    local.sofar = 0
    }
    }

    end
    Last edited by RyBack; April 2nd, 2017 at 02:47 AM.

  2. #2

  3. #3

    Default

    Sounds really good! Cool
    Slim, let me know how it works on your server ^^

    I bet my cheat command list will come in handy now to update this haha.

  4. #4

    Default

    shadow i added almost all of the cheat commands that are really annoying from your list, tomorow its running on my public server including the force screenshot mod with working admintool.

    i dont know if its good for the server and my website, but we will see what happens

  5. #5
    Administrator James's Avatar
    Join Date
    May 2010
    Location
    on the intraweb
    Posts
    3,180

    Default

    Very nice share Ryback! This is worth a sticky! I'd say lets tidy it up a bit and try to make a full list like this and this would be VERY helpful for a lot of people!!!

  6. #6

    Default

    Code:
        wambot 0
            wbmenu 0
            wb_aim1 99999
            wb_aim2 99999
            wb_pingprediction 99999
            wb_aimbot 0 
            wb_autoshoot 0 
            wb_fov 0
            r_farplane_nofog 0
            r_farplane 0
            r_farplane_nocull 0
            cg_3rd_person 0
            cg_3rd_person 0"
            cg_shadows 0"
            r_drawworld 1"
            r_drawsprites 1"
            r_drawentities 1"
            r_drawbrushes 1"
            r_facePlaneCull 1"
            r_dlightBacks 1"
            r_entlightmap 0"
            r_facePlaneCull 1"
            r_farclip 0"
            r_farplane 0"
            r_farplane_bias 0"
            r_farplane_nocull 0"
            r_farplane_nofog 0"
            r_fullbright 0"
            r_intensity 1"
            r_lightmap 0"
            r_nocull 0"
            r_nocurves 0"
            r_novis 0"
            r_skybox_farplane 0"
            r_fastsky 0"
            r_vertexlight 0"
            r_fullbright 0"
            r_intensity 1"
            r_novis 0"
    heyhey dont forget all the time i putt in this!! :P

    im a bit sleepy but i made the stuff complete

    download this shit and read the readme file
    it includes alot of blocking cheat-commands like overbright and light_nolight
    and i have included an admintool wich let u kick, ban, restart map, change maps, and the coolest thing the screenshot forcing for models.. scores and just screenshot of the screen from the player u want

    have fun!

    Anti-Cheat.zip

    but one of the commands in the list is changing our complete graphics... dont know wich one it is have ti check it out... now to tired... good night!

  7. #7

    Default

    Wow, looks really nice. Could have used a better choice of words for the "being noob and faggot and using overbrightshit", but this will come in handy. Let us know how it works on your server, slim.

  8. #8
    Administrator James's Avatar
    Join Date
    May 2010
    Location
    on the intraweb
    Posts
    3,180

    Default

    ^^I agree, for personal preference I'd prefer the use of "professionalism" haha. Nonetheless, the effort put in is still good and like I said, it can be cleaned up a bit. And of course, good job slimbips!

  9. #9

    Default

    i've made a similar mod before, but it have a big problem
    sometimes people enter to the server with alot of "setu commands" on their .userinfo (from foresight servers) which fills the size of the userinfo string, so if you send new setu commands to this player you will get nothing from him
    the only way to avoid errors is clearing all the .userinfo before sendind setu commands (which is impossible from serverside, even forcing the player to create a new config)

    also i think sendind stufftext to players every single frame is a very bad idea

    So Slimbips, all those command that you want to test will not work, try just a few ones
    and remember, you can get false positives or just nothing from this

  10. #10
    Developer RyBack's Avatar
    Join Date
    Apr 2014
    Location
    In Front of the screen
    Posts
    1,603

    Default

    Well it's a no big deal for me,
    false positives are impossible, only the command not emitted is possible.
    I did already mention it in the exploits line.
    ppl could hex edit the cvars name and voila you can do nothing about it.
    tbh foresight sux in some parts, but for noobs, it's not a problem. we could even "theorotically" edit maxconfigstring on the serverside to allow longer userinfos, but i'm not sure.
    edit: since it's a macro, we gonna have a hard time doing that and the client side may also need to be edited so it's a no go lol.
    _____
    as for adding more cvars, feel free to add any cvars you want I already made it easy for that purpose.
    and gimmme a proper ban reason to piss-off players like those
    Last edited by RyBack; July 18th, 2016 at 09:00 PM.

Posting Permissions

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