02.11.2014, 01:33
(
Last edited by Killa[DGZ]; 02/11/2014 at 04:37 PM.
Reason: My bad, I was wrong.. +rep
)
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.
This is the patch that you helped me make timerless pottus, it still works perfectly with no false positives..
You should add this patch to the list, thanks again for your help with it too
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
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;
}