Announcement

Collapse
No announcement yet.

Server Side Anti-Wallhack (Alpha)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Server Side Anti-Wallhack (Alpha)

    This is mostly for Rook (and maybe RocketGuy and Slot Zero):

    I have adapted sv_cullplayers_trace from FTEQW into the ProQuake source (the server source).

    (I was trying to do it from DarkPlaces, but it was giving me a killer headache because ... well ... I don't understand binary space partitions (BSP), although I know a little about them now! :d :d)

    Source: http://www.quakeone.com/proquake/antiwallhack-src.zip

    The 5 changed files in all probability can be used as-is, except in sv_main.c you will need to comment out the Con_Printfs "player visible"/"player invisible" that I used in testing.

    For the casual observer, what this means:

    Wallhacks and so-called "pak2 cheats" will be rendered irrelevant and meaningless on any server implementing this.

    DarkPlaces server has had this feature for a while and has some better stuff as well, unfortunately most of our mods cannot run DarkPlaces server without a lot of adaptation because a lot of our mods are polluted with what is known as "QCCX hacks".
    Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

    So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

  • #2
    wow.. this could mean big things..
    If they implement this, we can finally see who's REALLY legit

    Comment


    • #3
      Originally posted by Rampage View Post
      wow.. this could mean big things..
      If they implement this, we can finally see who's REALLY legit
      Very true.

      After this is implemented and given a thorough testing, nobody will have to wonder.

      I can name a handful of players that I really saw no point of being in a game they were involved in.

      I wish this were made ages ago. All the credit goes to LordHavoc, too bad so many of our mods can't use his engine as a server.
      Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

      So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

      Comment


      • #4
        I dream of the day when we will be able to discover ANY cheat being run by ANY one at ANY time on a server. And I feel your the man to do it Baker

        Comment


        • #5
          I really wanna see this implemented into every quake server that is still up and running, though i doubt it will be on many as most servers that are up, are left up and the person hosting it is inactive. Least it seems that way exceptions of phen, dredd, avalanche (who is technically inactive for online play anyways).

          Still can't wait till that's implemented. ^^

          Great work Baker, and Havoc.

          Comment


          • #6
            Right on

            Comment


            • #7
              please get this on the Speaknow and Quakeone servers NOW..

              Comment


              • #8
                Actually, alot of that code is duplicate of whats already in quake, so maybe just this would work...

                Code:
                qboolean SV_InvisibleToClient(edict_t *viewer, edict_t *seen)
                {
                	int i;
                	trace_t tr;
                	vec3_t start;
                	vec3_t end;
                
                	Q_memset (&tr, 0, sizeof(trace_t));
                		
                	//stage 1: check against their origin
                	VectorAdd(viewer->v.origin, viewer->v.view_ofs, start);
                	tr.fraction = 1;
                	
                	if (!SV_RecursiveHullCheck(cl.worldmodel->hulls, 0, 0, 1, start, seen->v.origin, &tr))
                	{
                		//stage 2: check against their bbox
                		for (i = 0; i < 8; i++)
                		{
                			end[0] = seen->v.origin[0] + ((i&1)?seen->v.mins[0]:seen->v.maxs[0]);
                			end[1] = seen->v.origin[1] + ((i&2)?seen->v.mins[1]:seen->v.maxs[1]);
                			end[2] = seen->v.origin[2] + ((i&4)?seen->v.mins[2]+0.1:seen->v.maxs[2]);
                
                			tr.fraction = 1;
                			if (!SV_RecursiveHullCheck(cl.worldmodel->hulls, 0, 0, 1, start, end, &tr))
                				return false;	//this trace went through, so don't cull
                		}
                	}
                	return true;
                }
                www.quakeone.com/qrack | www.quakeone.com/cax| http://en.twitch.tv/sputnikutah

                Comment


                • #9
                  Originally posted by R00k View Post
                  Actually, alot of that code is duplicate of whats already in quake, so maybe just this would work...
                  It does look that way, and I gave the above a shot as you suggested; it didn't work right somehow. It was falsely reporting a player as visible or not visible.

                  So I reverted to the longer and seemingly redundantish version that works, apparently flawlessly, in testing.

                  Anti-wallhack server: wqpro390.exe (Windows)

                  Full source available here. Just 5 changed files, none of which are operating system specific, see top post in this thread, so for a Linux server just the changed files should do for compiling.
                  Last edited by Baker; 12-18-2007, 09:45 AM.
                  Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

                  So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

                  Comment


                  • #10
                    Flanders is running this wqpro390.exe (Windows) atm.
                    Nice job baker !
                    My servers for the gamers:
                    bigfoot.servequake.com / damage.servequake.com

                    port 26000 EuroQuake
                    port 26001 EuroQuake Coop


                    newyork.quakeone.com
                    Offline ATM
                    fvf.servequake.com
                    flanders.servegame.org / flanders.servequake.com
                    Offline ATM
                    newdm.servequake.com
                    port 26010

                    http://bigfoot.servequake.com (EuroQuake)
                    sigpic

                    Comment


                    • #11
                      How did it go?

                      Phenom just installed it on Bomber and we did testing and didn't notice anything unusual.

                      In fact, after playing a few minutes Phenom wondered if it was on and I showed him how to verify that it is on.

                      I am thinking of adding something to "status" that indicates whether or not it is on or maybe a serverinfo command.

                      I am uploading the AVI to Google Video, might be a while before it goes live due to the 55MB size but I'll link it in when it is uploaded.
                      Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

                      So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

                      Comment


                      • #12
                        You dont need anything to verify it, the hackers will be enough

                        Comment


                        • #13
                          Originally posted by Rampage View Post
                          You dont need anything to verify it, the hackers will be enough
                          The verification is more that visible players are always seen, even when partially obscured. And it appears to work fine.

                          Based on the feedback from the Flanders DM server in Belgium and play testing on Bomber, no one notices anything different with the anti-wallhack on and everything is just as smooth.

                          Here is a demo of me and Phenom messing around at Bomber with airshot mode on with the anti-wallhack server installed.



                          It works so well that you don't even think about it or realize it is on.
                          Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

                          So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

                          Comment


                          • #14
                            An easy way to test this anti-wallhack would be to have the server host a custom map then have the client connect to the server using darkplaces without the map so you can see most of the mdls close to you.

                            Watch this video at 1:08 to see what I'm talking about.

                            Comment


                            • #15
                              Good thinking!

                              Or better! I could go into my pak file and DELETE dm6 (so DarkPlaces doesn't find it and displays nothing) and then play the demo in DarkPlaces and make an AVI.
                              Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

                              So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

                              Comment

                              Working...
                              X