[Plugin] Pawn.RakNet
#81

anti car-jack pls))
Reply
#82

Anti-CarJack (Anti-Cheat)
Cheat https://www.youtube.com/watch?v=W3lnsY_DNBg

Код:
#include <a_samp>
#include <Pawn.RakNet>

new GetPlayerVehicleId[MAX_PLAYERS];
const VEHICLE_SYNC = 200;

IPacket:VEHICLE_SYNC(playerid, BitStream:bs)
{
	new inCarData[PR_InCarSync];
	BS_IgnoreBits(bs, 8);
	BS_ReadInCarSync(bs, inCarData);
	if(IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleId[playerid] != inCarData[PR_vehicleId]) {//I put it IsPlayerInAnyVehicle(playerid), the packet gets updated faster than PutPlayerInVehicle so we do not get bug
		new string[144],name[MAX_PLAYER_NAME];
		GetPlayerName(playerid, name, sizeof(name));
		format(string,sizeof(string),"{FF0000}[Anti-CarJack]: {FFFF00}%s {999999}(ID:%d) {00FF00}auto-kicked {FF0000}[Reason: CarJack]", name,playerid);
		SendClientMessageToAll(-1, string);
		string[0] = EOS;
		Kick(playerid);
		return false;
	}
	return true;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) return GetPlayerVehicleId[playerid] = vehicleid;


public OnPlayerStateChange(playerid, newstate, oldstate){
	switch(oldstate){
	case PLAYER_STATE_PASSENGER: return GetPlayerVehicleId[playerid] = -1;
	case PLAYER_STATE_DRIVER: return GetPlayerVehicleId[playerid] = -1;}
	return true;
}

public OnPlayerDisconnect(playerid, reason)
{
	GetPlayerVehicleId[playerid] = 0;
	return true;
}


/*exemple if you will use it PutPlayerInVehicle

cmd:infernus(playerid)
{
	static Float:X,Float:Y,Float:Z,Float:Angle;
	GetPlayerPos(playerid,X,Y,Z);
	GetPlayerFacingAngle(playerid,Angle);
	GetPlayerVehicleId[playerid] = CreateVehicle(411,X,Y,Z+2,Angle,random(255),random(255),-1,-1);
	SetVehicleVirtualWorld(GetPlayerVehicleId[playerid],GetPlayerVirtualWorld(playerid));
	LinkVehicleToInterior(GetPlayerVehicleId[playerid], GetPlayerInterior(playerid));
	PutPlayerInVehicle(playerid,GetPlayerVehicleId[playerid],0);
	return true;
}*/
Reply
#83

Really appreciate ur effort Dima Shift why not make a different thread with all this anti cheat would help all the other people.
Reply
#84

Quote:
Originally Posted by HydraHumza
Посмотреть сообщение
Really appreciate ur effort Dima Shift why not make a different thread with all this anti cheat would help all the other people.
I've written a few (anti-crashers) but administrators deleted! because I do not explain every word, but I'm not a poet to write texts!
Reply
#85

Quote:
Originally Posted by DimaShift
View Post
I've written a few (anti-crashers) but administrators deleted! because I do not explain every word, but I'm not a poet to write texts!
http://forum.sa-mp.com/forumdisplay.php?f=83
You probably made it a tutorial, not an include.

But there are many badly explained tutorials and materials generally and they don't get deleted.
Kinda strange.

Jelly already released a similar thing and his thread is still up.
https://sampforum.blast.hk/showthread.php?tid=643254
Reply
#86

Say we detect fly hack, can we not re-write animation and velocity? It doesn't seem to do anything:
pawn Code:
onFootData[PR_animationId] = 1189;
onFootData[PR_velocity][0] = onFootData[PR_velocity][1] = onFootData[PR_velocity][2] = 0.0;
                         
BS_SetWriteOffset(bs, 8);
BS_WriteOnFootSync(bs, onFootData);
Reply
#87

Quote:
Originally Posted by Konstantinos
View Post
Say we detect fly hack, can we not re-write animation and velocity? It doesn't seem to do anything:
pawn Code:
onFootData[PR_animationId] = 1189;
onFootData[PR_velocity][0] = onFootData[PR_velocity][1] = onFootData[PR_velocity][2] = 0.0;
                         
BS_SetWriteOffset(bs, 8);
BS_WriteOnFootSync(bs, onFootData);
this animation use s()beit? send me screenshot from this animation, and I will help you
Reply
#88

It's from OverLight v3; Fly (the bmx animations):
pawn Code:
const PLAYER_SYNC = 207;

public OnIncomingPacket(playerid, packetid, BitStream: bs)
{
    switch (packetid)
    {
        case PLAYER_SYNC:
        {
            new onFootData[PR_OnFootSync];

            BS_IgnoreBits(bs, 8);
            BS_ReadOnFootSync(bs, onFootData);

            switch (onFootData[PR_animationId])
            {
                case 157, 159, 161:
                {
                    if (!IsPlayerInAnyVehicle(playerid))
                    {
                        onFootData[PR_animationId] = 1189;
                        onFootData[PR_velocity][0] = onFootData[PR_velocity][1] = onFootData[PR_velocity][2] = 0.0;
                         
                        BS_SetWriteOffset(bs, 8);
                        BS_WriteOnFootSync(bs, onFootData);
                    }
                }
            }
        }
    }
    return 1;
}
It sets the animation to the default standing one, but velocity doesn't make the player to stop. I think re-writing the old PR_position, everyone will see them standing in a place but the cheater can still fly to his client.

So my question is can we make the cheater unable to use them (make him to stop moving etc)?

EDIT: Setting PR_position to old position stored does indeed show to everyone the player standing but in cheater's screen still riding.
Reply
#89

Quote:
Originally Posted by Konstantinos
View Post
It's from OverLight v3; Fly (the bmx animations):


pawn Code:
const PLAYER_SYNC = 207;

public OnIncomingPacket(playerid, packetid, BitStream: bs)
{
    switch (packetid)
    {
        case PLAYER_SYNC:
        {
            new onFootData[PR_OnFootSync];

            BS_IgnoreBits(bs, 8);
            BS_ReadOnFootSync(bs, onFootData);

            switch (onFootData[PR_animationId])
            {
                case 157, 159, 161:
                {
                    if (!IsPlayerInAnyVehicle(playerid))
                    {
                        onFootData[PR_animationId] = 1189;
                        onFootData[PR_velocity][0] = onFootData[PR_velocity][1] = onFootData[PR_velocity][2] = 0.0;
                         
                        BS_SetWriteOffset(bs, 8);
                        BS_WriteOnFootSync(bs, onFootData);
                    }
                }
            }
        }
    }
    return 1;
}
It sets the animation to the default standing one, but velocity doesn't make the player to stop. I think re-writing the old PR_position, everyone will see them standing in a place but the cheater can still fly to his client.

So my question is can we make the cheater unable to use them (make him to stop moving etc)?

EDIT: Setting PR_position to old position stored does indeed show to everyone the player standing but in cheater's screen still riding.
this cheat (OverLight v3) is also created by RakNet packet and is hard to catch in given cases

test this!


Code:
const PLAYER_SYNC = 207;

public OnIncomingPacket(playerid, packetid, BitStream: bs)
{
	switch (packetid)
	{
	case PLAYER_SYNC:
		{
			new onFootData[PR_OnFootSync];
			BS_IgnoreBits(bs, 8);
			BS_ReadOnFootSync(bs, onFootData);
			if onFootData[PR_velocity][0] > 0.0 && onFootData[PR_animationId] == 1189) return Kick(playerid);

		}
	}

return true;
}
Reply
#90

he uses nop and does not act on it
Reply
#91

Quote:
Originally Posted by Konstantinos
View Post
So my question is can we make the cheater unable to use them (make him to stop moving etc)?
No. Unfortunately you cannot force anything on the client. The mod is working on his side and changing his position. By that, the client is sending these data to the server. The good thing with this plugin is that it modifies the packets that are sent through the server to all the clients but not himself. My best guess at this is getting rid of the cheater and avoid any others cheats that the client might have that your script cannot detect.
Reply
#92

Quote:
Originally Posted by DimaShift
View Post
he uses nop and does not act on it
Quote:
Originally Posted by Evocator
View Post
No. Unfortunately you cannot force anything on the client. The mod is working on his side and changing his position. By that, the client is sending these data to the server. The good thing with this plugin is that it modifies the packets that are sent through the server to all the clients but not himself. My best guess at this is getting rid of the cheater and avoid any others cheats that the client might have that your script cannot detect.
Thanks, that's all I wanted to know. It'd be hilarious if we could and the cheater would think the tool is broken.

Quote:
Originally Posted by DimaShift
View Post
this cheat (OverLight v3) is also created by RakNet packet and is hard to catch in given cases
Some are undetectable yes, but I've managed to detect at least 40 percent of all of them so far.
Reply
#93

Is it possible with the help of the plug-in to find out whether cleo is installed for example anticrasher and so on
Reply
#94

Quote:
Originally Posted by IvanElistratov
View Post
Is it possible with the help of the plug-in to find out whether cleo is installed for example anticrasher and so on
no...
Reply
#95

Anti-Airbreak
Reply
#96

Quote:
Originally Posted by IvanElistratov
View Post
Is it possible with the help of the plug-in to find out whether cleo is installed for example anticrasher and so on
Quote:
Originally Posted by KoloradO
View Post
Anti-Airbreak
This plugin is only a middleware for the server, it can only tell you about the packets that are coming before they're being processed by the server, messages like location, sync, desync etc.

This plugin is nowhere near invading player's personal game folder, it has "write the best anti-cheat" in the title because some cheats you cannot detect so simply without it. (if at all)
This plugin completes the *existing* anti cheats but isn't an entire anti cheat by itself.

If you're searching for a complete anti cheat; then you're in the wrong thread.

It won't detect air break, it maybe won't detect many other things.
Reply
#97

Quote:
Originally Posted by Kaperstone
View Post
This plugin is only a middleware for the server, it can only tell you about the packets that are coming before they're being processed by the server, messages like location, sync, desync etc.

This plugin is nowhere near invading player's personal game folder, it has "write the best anti-cheat" in the title because some cheats you cannot detect so simply without it. (if at all)
This plugin completes the *existing* anti cheats but isn't an entire anti cheat by itself.

If you're searching for a complete anti cheat; then you're in the wrong thread.

It won't detect air break, it maybe won't detect many other things.
Your text is useless, I already know all this. it is possible to do a yes anti-airbreak with this plugin, but the question is how
Reply
#98

Quote:
Originally Posted by KoloradO
View Post
Your text is useless, I already know all this. it is possible to do a yes anti-airbreak with this plugin, but the question is how
If you know all of this, then why do you think it is possible to detect air break with this plugin?
Is it some kind of "I only feel like I know it is possible"?

How do you think you can detect air break with a packet?

When you no-clip you don't have any animation playing or synchronization packets, you just change position, the only thing you can detect is whether he has the "floating" animation; if it plays for a few seconds, which isn't always legit as well because you can be stuck above other players and I may be wrong, but you can be stuck in that animation when you press escape

https://www.youtube.com/watch?v=u345ldgehzM

Which yet again, you need animation, not packets.
You don't need the sync of the animation because you can use OnPlayerUpdate or even better - SetTimer for this.
(because you don't need so many cycles to check whether he has that animation, 10 seconds in that animation and you can suspect he has somethin' going on there)

You can also use MapAndreas to detect if he is underground, which still not so accurate because if you place them by mistake under the ground or they drive in high speed towards it they can reach underground before the sync of the GTA map kicks in.


You either don't need this plugin or you don't understand this plugin.


Last but not least, there are cleo versions of no clip
https://www.youtube.com/watch?v=psy-zDSlUGM
Which they don't float at all, you can play normally like you're on the ground, just at different z offset.
Reply
#99

It is possible to get local player IP ?
Reply

Quote:
Originally Posted by GuyYahood1
View Post
It is possible to get local player IP ?
no..
Reply


Forum Jump:


Users browsing this thread: 5 Guest(s)