SA-MP Forums Archive
[Include] Southclaw's & Pottus's Anti-cheat patches - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Filterscripts (https://sampforum.blast.hk/forumdisplay.php?fid=17)
+---- Forum: Includes (https://sampforum.blast.hk/forumdisplay.php?fid=83)
+---- Thread: [Include] Southclaw's & Pottus's Anti-cheat patches (/showthread.php?tid=504244)

Pages: 1 2 3


Re: Southclaw's & Pottus's Anti-cheat patches - iRaiDeN - 14.04.2014

goo job!


Re: Southclaw's & Pottus's Anti-cheat patches - Kyra - 14.04.2014

For the cheat no reload weapon, i use personally an anti infiny ammo but with the SYNC i can have false positive and i use a timer for this bug i use an system for multi check all 1000 ms if the player have a diff ammo + X ammo on my function local (example for eagle getplayerammo +15 ammos) and i the player have +15 Ammos eagle on 6 checks on timer (6 seconds) i kick this

It's not the best i think but for the moment for me it's good, and i decrease a variable on onplayerweaponshot for the ammo

For me your system use lot of ressource for detect this cheat but your system there is more performant and it's an good idea

For anti rapid fire, when the player lag he can have false positive i don't know how i can check if the player have a big LAG but your idea for check GetServerTickRate () it's good for lag server i think

And yes this post is very usefull for help the community to counter cheats.



Re: Southclaw's & Pottus's Anti-cheat patches - NoahF - 20.04.2014

This is great. Thank you so much for this. This will def. help a lot of people!


Re: Southclaw's & Pottus's Anti-cheat patches - Kyra - 11.05.2014

Someone try an anticheat for norecoil/spread bullet?


Re: Southclaw's & Pottus's Anti-cheat patches - Pottus - 15.05.2014

Quote:
Originally Posted by Kyra
View Post
Someone try an anticheat for norecoil/spread bullet?
That would probably be too difficult to detect I think.


Re: Southclaw's & Pottus's Anti-cheat patches - Admigo - 15.05.2014

Nice patches. Will use them for my server. Great job. I hope to see more of them.


Re: Southclaw's & Pottus's Anti-cheat patches - Kyra - 17.05.2014

I try your code here, https://sampforum.blast.hk/showthread.php?tid=496392

But when i move sometimes i have strange result, easy how? I need to detect this if you can just explain me your idea please


Re: Southclaw's & Pottus's Anti-cheat patches - Chrillzen - 04.10.2014

Much appreciated.


Re: Southclaw's & Pottus's Anti-cheat patches - Chefгo - 28.10.2014

download link?


Re: Southclaw's & Pottus's Anti-cheat patches - Alex Magaсa - 28.10.2014

nice include ! great work southclaw + pottus.


Re: Southclaw's & Pottus's Anti-cheat patches - Chefгo - 28.10.2014

Quote:
Originally Posted by [HLF]Southclaw
View Post
Read the first post, the code is right there!
show me example ?


Re: Southclaw's & Pottus's Anti-cheat patches - Pottus - 01.11.2014

New patch for a new exploit today.


Re: Southclaw's & Pottus's Anti-cheat patches - Pottus - 02.11.2014

Are you sure you used the correct exploit? I don't think what your detecting is the same thing.


Re: Southclaw's & Pottus's Anti-cheat patches - Killa[DGZ] - 02.11.2014

Quote:
Originally Posted by Pottus
View Post
Are you sure you used the correct exploit? I don't think what your detecting is the same thing.
Probably isn't you know lol,

This is what I mentioned to you a few days ago via PM, the exploit that is designed to severely lag the server by calling numerous callbacks sequentially @20ms or so..

Looking at your code, my patch would also detect it.. but feel free to test your exploit on my server and see what happens.


Re: Southclaw's & Pottus's Anti-cheat patches - Killa[DGZ] - 02.11.2014

Quote:
Originally Posted by Pottus
View Post
New patch for a new exploit today.
Tested with the exploit itself and it doesn't work mate.. didn't get detected even after a whole minute of lagging the server.

The exploit causes 'GetPlayerVehicleID' to return 0 everytime, also you cannot, GetHealth, GetWeapon, GetModel an so on.. OnPlayerStateChange & OnPlayerUpdate is never called for the exploiting player.

However you can still get their 'exiting vehicleID' from within OnPlayerExitVehicle, on my test server there are no vehicles and OnPlayerExitVehicle was still being called, it's only when there are vehicles that OnPlayerEnterVehicle is also called.


This is 1 minute worth of running the lag exploit on my test server, I've added prints into every callback to see what is actually being called.
Code:
[22:33:00] OnPlayerExitVehicle
[22:33:00] OnPlayerPickUpPickup: 53
[22:33:00] OnPlayerRequestSpawn
[22:33:00] OnDialogResponse - dialogID:0
[22:33:01] OnPlayerExitVehicle
[22:33:01] OnPlayerPickUpPickup: 54
[22:33:01] OnPlayerRequestSpawn
[22:33:01] OnDialogResponse - dialogID:0
[22:33:02] OnPlayerExitVehicle
[22:33:02] OnPlayerPickUpPickup: 55
[22:33:02] OnPlayerRequestSpawn
[22:33:02] OnDialogResponse - dialogID:0
[22:33:03] OnPlayerExitVehicle
[22:33:03] OnPlayerPickUpPickup: 56
[22:33:03] OnPlayerRequestSpawn
[22:33:03] OnDialogResponse - dialogID:0
[22:33:04] OnPlayerExitVehicle
[22:33:04] OnPlayerPickUpPickup: 57
[22:33:04] OnPlayerRequestSpawn
[22:33:04] OnDialogResponse - dialogID:0
[22:33:05] OnPlayerExitVehicle
[22:33:05] OnPlayerPickUpPickup: 58
[22:33:05] OnPlayerRequestSpawn
[22:33:05] OnDialogResponse - dialogID:0
[22:33:06] OnPlayerExitVehicle
[22:33:06] OnPlayerPickUpPickup: 59
[22:33:06] OnPlayerRequestSpawn
[22:33:06] OnDialogResponse - dialogID:0
[22:33:07] OnPlayerExitVehicle
[22:33:07] OnPlayerPickUpPickup: 60
[22:33:07] OnPlayerRequestSpawn
[22:33:07] OnDialogResponse - dialogID:0
[22:33:08] OnPlayerExitVehicle
[22:33:08] OnPlayerPickUpPickup: 61
[22:33:08] OnPlayerRequestSpawn
[22:33:08] OnDialogResponse - dialogID:0
[22:33:09] OnPlayerExitVehicle
[22:33:09] OnPlayerPickUpPickup: 62
[22:33:09] OnPlayerRequestSpawn
[22:33:09] OnDialogResponse - dialogID:0
[22:33:10] OnPlayerExitVehicle
[22:33:10] OnPlayerPickUpPickup: 63
[22:33:10] OnPlayerRequestSpawn
[22:33:10] OnDialogResponse - dialogID:0
[22:33:11] OnPlayerExitVehicle
[22:33:11] OnPlayerPickUpPickup: 64
[22:33:11] OnPlayerRequestSpawn
[22:33:11] OnDialogResponse - dialogID:0
[22:33:12] OnPlayerExitVehicle
[22:33:12] OnPlayerPickUpPickup: 65
[22:33:12] OnPlayerRequestSpawn
[22:33:12] OnDialogResponse - dialogID:0
[22:33:13] OnPlayerExitVehicle
[22:33:13] OnPlayerPickUpPickup: 66
[22:33:13] OnPlayerRequestSpawn
[22:33:13] OnDialogResponse - dialogID:0
[22:33:14] OnPlayerExitVehicle
[22:33:14] OnPlayerPickUpPickup: 67
[22:33:14] OnPlayerRequestSpawn
[22:33:14] OnDialogResponse - dialogID:0
[22:33:15] OnPlayerExitVehicle
[22:33:15] OnPlayerPickUpPickup: 68
[22:33:15] OnPlayerRequestSpawn
[22:33:15] OnDialogResponse - dialogID:0
[22:33:16] OnPlayerExitVehicle
[22:33:16] OnPlayerPickUpPickup: 69
[22:33:16] OnPlayerRequestSpawn
[22:33:16] OnDialogResponse - dialogID:0
[22:33:17] OnPlayerExitVehicle
[22:33:17] OnPlayerPickUpPickup: 70
[22:33:17] OnPlayerRequestSpawn
[22:33:17] OnDialogResponse - dialogID:0
[22:33:18] OnPlayerExitVehicle
[22:33:18] OnPlayerPickUpPickup: 71
[22:33:18] OnPlayerRequestSpawn
[22:33:18] OnDialogResponse - dialogID:0
[22:33:19] OnPlayerExitVehicle
[22:33:19] OnPlayerPickUpPickup: 72
[22:33:19] OnPlayerRequestSpawn
[22:33:19] OnDialogResponse - dialogID:0
[22:33:20] OnPlayerExitVehicle
[22:33:20] OnPlayerPickUpPickup: 73
[22:33:20] OnPlayerRequestSpawn
[22:33:20] OnDialogResponse - dialogID:0
[22:33:21] OnPlayerExitVehicle
[22:33:21] OnPlayerPickUpPickup: 74
[22:33:21] OnPlayerRequestSpawn
[22:33:21] OnDialogResponse - dialogID:0
[22:33:22] OnPlayerExitVehicle
[22:33:22] OnPlayerPickUpPickup: 75
[22:33:22] OnPlayerRequestSpawn
[22:33:22] OnDialogResponse - dialogID:0
[22:33:23] OnPlayerExitVehicle
[22:33:23] OnPlayerPickUpPickup: 76
[22:33:23] OnPlayerRequestSpawn
[22:33:23] OnDialogResponse - dialogID:0
[22:33:24] OnPlayerExitVehicle
[22:33:24] OnPlayerPickUpPickup: 77
[22:33:24] OnPlayerRequestSpawn
[22:33:24] OnDialogResponse - dialogID:0
[22:33:25] OnPlayerExitVehicle
[22:33:25] OnPlayerPickUpPickup: 78
[22:33:25] OnPlayerRequestSpawn
[22:33:25] OnDialogResponse - dialogID:0
[22:33:26] OnPlayerExitVehicle
[22:33:26] OnPlayerPickUpPickup: 79
[22:33:26] OnPlayerRequestSpawn
[22:33:26] OnDialogResponse - dialogID:0
[22:33:27] OnPlayerExitVehicle
[22:33:27] OnPlayerPickUpPickup: 80
[22:33:27] OnPlayerRequestSpawn
[22:33:27] OnDialogResponse - dialogID:0
[22:33:28] OnPlayerExitVehicle
[22:33:28] OnPlayerPickUpPickup: 81
[22:33:28] OnPlayerRequestSpawn
[22:33:28] OnDialogResponse - dialogID:0
[22:33:29] OnPlayerExitVehicle
[22:33:29] OnPlayerPickUpPickup: 82
[22:33:29] OnPlayerRequestSpawn
[22:33:29] OnDialogResponse - dialogID:0
[22:33:30] OnPlayerExitVehicle
[22:33:30] OnPlayerPickUpPickup: 83
[22:33:30] OnPlayerRequestSpawn
[22:33:30] OnDialogResponse - dialogID:0
[22:33:31] OnPlayerExitVehicle
[22:33:31] OnPlayerPickUpPickup: 84
[22:33:31] OnPlayerRequestSpawn
[22:33:31] OnDialogResponse - dialogID:0
[22:33:32] OnPlayerExitVehicle
[22:33:32] OnPlayerPickUpPickup: 85
[22:33:32] OnPlayerRequestSpawn
[22:33:32] OnDialogResponse - dialogID:0
[22:33:33] OnPlayerExitVehicle
[22:33:33] OnPlayerPickUpPickup: 86
[22:33:33] OnPlayerRequestSpawn
[22:33:33] OnDialogResponse - dialogID:0
[22:33:34] OnPlayerExitVehicle
[22:33:34] OnPlayerPickUpPickup: 87
[22:33:34] OnPlayerRequestSpawn
[22:33:34] OnDialogResponse - dialogID:0
[22:33:35] OnPlayerExitVehicle
[22:33:35] OnPlayerPickUpPickup: 88
[22:33:35] OnPlayerRequestSpawn
[22:33:35] OnDialogResponse - dialogID:0
[22:33:36] OnPlayerExitVehicle
[22:33:36] OnPlayerPickUpPickup: 89
[22:33:36] OnPlayerRequestSpawn
[22:33:36] OnDialogResponse - dialogID:0
[22:33:37] OnPlayerExitVehicle
[22:33:37] OnPlayerPickUpPickup: 90
[22:33:37] OnPlayerRequestSpawn
[22:33:37] OnDialogResponse - dialogID:0
[22:33:38] OnPlayerExitVehicle
[22:33:38] OnPlayerPickUpPickup: 91
[22:33:38] OnPlayerRequestSpawn
[22:33:38] OnDialogResponse - dialogID:0
[22:33:39] OnPlayerExitVehicle
[22:33:39] OnPlayerPickUpPickup: 92
[22:33:39] OnPlayerRequestSpawn
[22:33:39] OnDialogResponse - dialogID:0
[22:33:40] OnPlayerExitVehicle
[22:33:40] OnPlayerPickUpPickup: 93
[22:33:40] OnPlayerRequestSpawn
[22:33:40] OnDialogResponse - dialogID:0
[22:33:41] OnPlayerExitVehicle
[22:33:41] OnPlayerPickUpPickup: 94
[22:33:41] OnPlayerRequestSpawn
[22:33:41] OnDialogResponse - dialogID:0
[22:33:42] OnPlayerExitVehicle
[22:33:42] OnPlayerPickUpPickup: 95
[22:33:42] OnPlayerRequestSpawn
[22:33:42] OnDialogResponse - dialogID:0
[22:33:43] OnPlayerExitVehicle
[22:33:43] OnPlayerPickUpPickup: 96
[22:33:43] OnPlayerRequestSpawn
[22:33:43] OnDialogResponse - dialogID:0
[22:33:44] OnPlayerExitVehicle
[22:33:44] OnPlayerPickUpPickup: 97
[22:33:44] OnPlayerRequestSpawn
[22:33:44] OnDialogResponse - dialogID:0
[22:33:45] OnPlayerExitVehicle
[22:33:45] OnPlayerPickUpPickup: 98
[22:33:45] OnPlayerRequestSpawn
[22:33:45] OnDialogResponse - dialogID:0
[22:33:46] OnPlayerExitVehicle
[22:33:46] OnPlayerPickUpPickup: 99
[22:33:46] OnPlayerRequestSpawn
[22:33:46] OnDialogResponse - dialogID:0
[22:33:47] OnPlayerExitVehicle
[22:33:47] OnPlayerPickUpPickup: 100
[22:33:47] OnPlayerRequestSpawn
[22:33:47] OnDialogResponse - dialogID:0
[22:33:48] OnPlayerExitVehicle
[22:33:48] OnPlayerPickUpPickup: 101
[22:33:48] OnPlayerRequestSpawn
[22:33:48] OnDialogResponse - dialogID:0
[22:33:49] OnPlayerExitVehicle
[22:33:49] OnPlayerPickUpPickup: 102
[22:33:49] OnPlayerRequestSpawn
[22:33:49] OnDialogResponse - dialogID:0
[22:33:50] OnPlayerExitVehicle
[22:33:50] OnPlayerPickUpPickup: 103
[22:33:50] OnPlayerRequestSpawn
[22:33:50] OnDialogResponse - dialogID:0
[22:33:51] OnPlayerExitVehicle
[22:33:51] OnPlayerPickUpPickup: 104
[22:33:51] OnPlayerRequestSpawn
[22:33:51] OnDialogResponse - dialogID:0
[22:33:52] OnPlayerExitVehicle
[22:33:52] OnPlayerPickUpPickup: 105
[22:33:52] OnPlayerRequestSpawn
[22:33:52] OnDialogResponse - dialogID:0
[22:33:53] OnPlayerExitVehicle
[22:33:53] OnPlayerPickUpPickup: 106
[22:33:53] OnPlayerRequestSpawn
[22:33:53] OnDialogResponse - dialogID:0
[22:33:54] OnPlayerExitVehicle
[22:33:54] OnPlayerPickUpPickup: 107
[22:33:54] OnPlayerRequestSpawn
[22:33:54] OnDialogResponse - dialogID:0
[22:33:55] OnPlayerExitVehicle
[22:33:55] OnPlayerPickUpPickup: 108
[22:33:55] OnPlayerRequestSpawn
[22:33:55] OnDialogResponse - dialogID:0
[22:33:56] OnPlayerExitVehicle
[22:33:56] OnPlayerPickUpPickup: 109
[22:33:56] OnPlayerRequestSpawn
[22:33:56] OnDialogResponse - dialogID:0
[22:33:57] OnPlayerExitVehicle
[22:33:57] OnPlayerPickUpPickup: 110
[22:33:57] OnPlayerRequestSpawn
[22:33:57] OnDialogResponse - dialogID:0
[22:33:58] OnPlayerExitVehicle
[22:33:58] OnPlayerPickUpPickup: 111
[22:33:58] OnPlayerRequestSpawn
[22:33:58] OnDialogResponse - dialogID:0
[22:33:59] OnPlayerExitVehicle
[22:33:59] OnPlayerPickUpPickup: 112
[22:33:59] OnPlayerRequestSpawn
[22:33:59] OnDialogResponse - dialogID:0
[22:34:00] OnPlayerExitVehicle
[22:34:00] OnPlayerPickUpPickup: 113
[22:34:00] OnPlayerRequestSpawn
[22:34:00] OnDialogResponse - dialogID:0
This is the patch that you helped me make timerless pottus, it still works perfectly with no false positives..
pawn Code:
#define VEHICLE_EXIT_TIME   2000
#define VEHICLE_EXITS       3

new LAGExitedVehicle[MAX_PLAYERS];
new LAGExitTimeCheck[MAX_PLAYERS];
new LAGPlayerExitingVehicle[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    if(IsPlayerConnected(playerid))
    {
        LAGExitedVehicle[playerid] = 0;
        LAGExitTimeCheck[playerid] = 0;
        LAGPlayerExitingVehicle[playerid] = 0;
    }
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    if(LAGPlayerExitingVehicle[playerid] != vehicleid)
    {
        if(GetTickCount() - LAGExitTimeCheck[playerid] < VEHICLE_EXIT_TIME)
        {
            LAGExitedVehicle[playerid]++;
            if(LAGExitedVehicle[playerid] >= VEHICLE_EXITS)
            {
                OnPlayerUsedLagExploit(playerid);
            }
        }
        else
        {
            LAGExitedVehicle[playerid] = 1;
        }
        LAGExitTimeCheck[playerid] = GetTickCount();
        LAGPlayerExitingVehicle[playerid] = vehicleid;
    }
    return 1;
}
forward OnPlayerUsedLagExploit(playerid);
public OnPlayerUsedLagExploit(playerid)
{
    if(IsPlayerConnected(playerid))
    {
        //KICK or BAN
    }
    return 1;
}
You should add this patch to the list, thanks again for your help with it too


Re: Southclaw's & Pottus's Anti-cheat patches - Pottus - 02.11.2014

Give me your IP and I will try it thanks.


Re: Southclaw's & Pottus's Anti-cheat patches - Killa[DGZ] - 02.11.2014

Spose you could also detect the request of spawn "if already spawned" add infraction?

Edit: Tested, not a good enough detection method in my opinion..


Re: Southclaw's & Pottus's Anti-cheat patches - Killa[DGZ] - 02.11.2014

Quote:
Originally Posted by Pottus
View Post
Give me your IP and I will try it thanks.
Ahh yes I see, completely different thing.. I will implement your code asap.


Good job, an thankyou!


Re: Southclaw's & Pottus's Anti-cheat patches - Jakwob - 18.11.2014

nice work guys its about time we crack down on hacks.


Re: Southclaw's & Pottus's Anti-cheat patches - PaulDinam - 15.01.2015

delete