[Include] Southclaw's & Pottus's Anti-cheat patches
#21

goo job!
Reply
#22

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.
Reply
#23

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

Someone try an anticheat for norecoil/spread bullet?
Reply
#25

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.
Reply
#26

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

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
Reply
#28

Much appreciated.
Reply
#29

download link?
Reply
#30

nice include ! great work southclaw + pottus.
Reply
#31

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

New patch for a new exploit today.
Reply
#33

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

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.
Reply
#35

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
Reply
#36

Give me your IP and I will try it thanks.
Reply
#37

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..
Reply
#38

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!
Reply
#39

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

delete
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)