SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Español/Spanish > Lanzamientos/Releases

Reply
 
Thread Tools Display Modes
Old 25/07/2012, 01:00 AM   #1
TheChaoz
High-roller
 
TheChaoz's Avatar
 
Join Date: Dec 2009
Location: Argentina
Posts: 4,702
Reputation: 219
Flowers Funciones y metodos utiles para evitar ataques (desde script)

Bueno recientemente se crearon varios temas solicitando ayuda en algunos de ellos para detener ataques hacia los servidores.
En este topic publicare algunos de los metodos que se utilizan para parar ataques desde el script (es decir que no son validos para ataques tipo DOS, DDOS, y agentes externos al servidor).

Evitar Bots desde una misma IP: por el equipo de SA-MP
Si bien existe un filterscript el cual viene por defecto con el servidor de SA-MP llamado maxip.pwn, mostrare el medoto, ya que no todos lo conocen.
pawn Code:
#define MAX_IPS    (3)

new IP[MAX_PLAYERS][16];

public OnPlayerConnect(playerid)
{
    new contador;
    GetPlayerIp(playerid, IP[playerid], 16);
    for(new user; user<GetMaxPlayers(); user++)
        if(IsPlayerConnected(user))
            if(!strcmp(IP[playerid], IP[user]))
                contador++;
    if(contador>=MAX_IPS)
        Kick(playerid);
    return 1;
}

Evitar Bots desde la misma IP que conectan y desconectan por JernejL
pawn Code:
#define MAX_BOTS    (50)

enum bInfo
{
    bIP,
    bTime
};

new Bots[MAX_BOTS][bInfo], bCount;

public OnPlayerConnect(playerid)
{
    new IP[16];
    GetPlayerIp(playerid, IP, 16);
    Bots[bCount][bIP] = IpToInt(IP);
    Bots[bCount][bTime] = GetTickCount();
    for(new i; i<MAX_BOTS; i++)
    {
        if(Bots[bCount][bIP] != Bots[i][bIP])
            continue;
        if(GetTimeDistance(Bots[bCount][bTime], Bots[i][bTime])<=1000)
            Bots[bCount][bTimes]++;
    }
    if(Bots[bCount][bTimes]>3)Ban(playerid);
    bCount++;
    if(bCount>=MAX_BOTS)
        bCount = 0;
    return 1;
}

IpToInt(const szIP[])//by RyDeR`, JernejL
{
    new aiBytes[4 char], iPos = 0;
    aiBytes{0} = strval(szIP[iPos]);
    while(szIP[iPos] != EOS && szIP[iPos++] != '.') {}
    aiBytes{1} = strval(szIP[iPos]);
    while(szIP[iPos] != EOS && szIP[iPos++] != '.') {}
    aiBytes{2} = strval(szIP[iPos]);
    while(szIP[iPos] != EOS && szIP[iPos++] != '.') {}
    aiBytes{3} = strval(szIP[iPos]);
    return aiBytes[0];
}

intabs(innumber)//by JernejL
{
    if(innumber < 0)return -innumber;
    return innumber;
}

Distance1Dint(fPos1, fPos2)//by JernejL
{
    if (fPos1 > fPos2)return intabs(fPos1 - fPos2);
    return intabs(fPos2 - fPos1);
}

GetTimeDistance(a, b)//by JernejL
{
    if((a < 0) && (b > 0)){
        new dist;
        dist = Distance1Dint(a, b);
        if(dist > 2147483647)return Distance1Dint(a - 2147483647, b - 2147483647);
        return dist;
    }
    return Distance1Dint(a, b);
}

Evitar Flood de muertes: por Cessil
pawn Code:
new DeathSpam[MAX_PLAYERS char], LastDeath[MAX_PLAYERS];
public OnPlayerDeath(playerid, killerid, reason)
{
    new time = gettime();
    switch(time - LastDeath[playerid])
    {
        case 0 .. 3:
        {
            DeathSpam{playerid}++;
            if(DeathSpam{playerid} >= 3)
                Kick(playerid);
        }
        default:
            DeathSpam{playerid} = 0;
    }
    LastDeath[playerid] = gettime();
    return 1;
}

Todos son bienvenidos a subir los metodos que utilizen para estos u otros ataques en este tema.
__________________

Last edited by TheChaoz; 26/07/2012 at 09:38 PM.
TheChaoz is offline   Reply With Quote
Old 25/07/2012, 01:48 AM   #2
santi.arg
Big Clucker
 
Join Date: Jul 2010
Posts: 55
Reputation: 0
Default Respuesta: Funciones y metodos utiles para evitar ataques (desde script)

Muy útil, lo voy a tener en cuenta.

A qué llama Spawn masivo de vehículos? A transportarse de vehículo en vehículo o hacer aparecer un vehículo en tu posición sin entrar?.

El flood de muertes que provocaría?

Y el tema de los bots, no es más efectivo el segundo método?

Gracias por el aporte
santi.arg is offline   Reply With Quote
Old 25/07/2012, 02:12 AM   #3
TheChaoz
High-roller
 
TheChaoz's Avatar
 
Join Date: Dec 2009
Location: Argentina
Posts: 4,702
Reputation: 219
Default Respuesta: Funciones y metodos utiles para evitar ataques (desde script)

Quote:
Originally Posted by santi.arg View Post
Muy útil, lo voy a tener en cuenta.

A qué llama Spawn masivo de vehículos? A transportarse de vehículo en vehículo o hacer aparecer un vehículo en tu posición sin entrar?.

El flood de muertes que provocaría?

Y el tema de los bots, no es más efectivo el segundo método?

Gracias por el aporte
Aca te dejo un video para que veas a lo que se refiere el spawn masivo de autos: link.

El flood de muertes lo que genera es que no veas en la tabla de muertes (SendDeathMessage) a nadie, excepto al que esta realizando el flood, similar a un flood en el chat, pero sobre la tabla de muertes.

Y sobre los bots, son medotos diferentes, muchos conectan bots sin desconectar los viejos, forma muy basica de DOS (imposible tirar un sv con este metodo, pero suficientemente molesto para ser evitado). El segundo es para un DOS/DDOS de bots.
__________________
TheChaoz is offline   Reply With Quote
Old 25/07/2012, 02:49 AM   #4
santi.arg
Big Clucker
 
Join Date: Jul 2010
Posts: 55
Reputation: 0
Default Respuesta: Funciones y metodos utiles para evitar ataques (desde script)

Probé el spawn de vehículos con el ****** pero no, no funciona. Sinceramente estuve pensando de cómo podría bloquear eso pero, por ahora, no se me ocurrió.
santi.arg is offline   Reply With Quote
Old 25/07/2012, 04:43 AM   #5
ipsBruno
Banned
 
Join Date: Apr 2010
Location: Brazil, Caxias RS
Posts: 6,159
Reputation: 483
Default Re : Funciones y metodos utiles para evitar ataques (desde script)

The Chaoz (unbanned ?) Otro dato interesante es que algunos tipos de bots SIEMPRE tiene un ping de 65535

Bueno Trabajo !! Gracias
ipsBruno is offline   Reply With Quote
Old 25/07/2012, 04:50 AM   #6
EduGTA
Gangsta
 
EduGTA's Avatar
 
Join Date: Mar 2011
Posts: 744
Reputation: 145
Default Respuesta: Funciones y metodos utiles para evitar ataques (desde script)

Quote:
Originally Posted by the_chaoz View Post
Aca te dejo un video para que veas a lo que se refiere el spawn masivo de autos: link.
OFF-TOPIC: estaba escuchando la misma música!

IN-TOPIC: Yo creí que con "spawn masivo de autos" te referías a poner todos los carros en un solo lugar, muy tipico del S0B3IT...
__________________

Comencé el año con 654 posts y 50 REP
EduGTA is online now   Reply With Quote
Old 25/07/2012, 04:52 AM   #7
ipsBruno
Banned
 
Join Date: Apr 2010
Location: Brazil, Caxias RS
Posts: 6,159
Reputation: 483
Default Re : Respuesta: Funciones y metodos utiles para evitar ataques (desde script)

Quote:
Originally Posted by Edugta. View Post
OFF-TOPIC: estaba escuchando la misma música!

IN-TOPIC: Yo creí que con "spawn masivo de autos" te referías a poner todos los carros en un solo lugar, muy tipico del S0B3IT...
No, "CAR MASS SPAWN" és Cleo ..

Vea esto:
http://forum.sa-mp.com/showthread.php?t=354537
ipsBruno is offline   Reply With Quote
Old 30/07/2012, 05:33 AM   #8
CeKiT
Big Clucker
 
Join Date: Feb 2012
Posts: 171
Reputation: 0
Default Respuesta: Funciones y metodos utiles para evitar ataques (desde script)

Recomiendo que hagan un timer que cada 5 segundos ponga el servidor normal osea hostname, gravity, weburl, mapname, maxnpc 0 (si no tienen ninguno) y mejor que todo rcon 0 usen el sistema de admin para que no descubran su rcon con 0 la desactivamos.

En cuando a el timer que normalize si se fijan en mis post hice un sistema "CSeguridad" con un pequeño anticheat y un normalizador.

Saludos
CeKiT is offline   Reply With Quote
Old 07/08/2012, 03:56 AM   #9
Bu11Sh0t
Huge Clucker
 
Join Date: Jun 2012
Posts: 335
Reputation: 13
Default Respuesta: Funciones y metodos utiles para evitar ataques (desde script)

Pues bueno, este sistema es para evitar el flood de carros y que los hackers se teletransporten a los carros:

pawn Code:
new Carro[MAX_PLAYERS];
public OnPlayerEnterVehicle(playerid, vehicleid)
{
    Carro[playerid] = 1;
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    Carro[playerid] = 0;
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
        if(Carro[playerid] == 0)
            Kick(playerid)
    return 1;
}
Y cada vez que se use el PutPlayerInVehicle actualizar la variable:
Code:
Carro[playerid] = 1;
__________________
pawn Code:
public OnUserEnterForum(userid)
{
    SendClientMessage(userid, 0xFF0000FF, "Por favor, lee las reglas.");
    GameTextForPlayer(userid, "~r~ Por favor, lee las reglas.", 7000, 3);
    if(ReadRules[userid] == true) return 1;
    else Kick(userid);
}
Bu11Sh0t is offline   Reply With Quote
Old 08/08/2012, 02:23 AM   #10
TheChaoz
High-roller
 
TheChaoz's Avatar
 
Join Date: Dec 2009
Location: Argentina
Posts: 4,702
Reputation: 219
Default Respuesta: Funciones y metodos utiles para evitar ataques (desde script)

El codigo podria generar algunos falsos positivos, si lo que intentas hacer es evitar el "Car Jacked" te sugiero leer esto (esta en ingles).
__________________
TheChaoz is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] evitar roubo para cops Gutierrez_zikaloko Português/Portuguese 8 23/05/2012 04:50 PM
Urgente para evitar mas de 1 conexion Jose_grana Español/Spanish 15 20/10/2011 01:53 PM
Sugerencias de funciones para SA-MP 0.3C Jovanny Español/Spanish 47 28/11/2010 11:12 AM
[TUTORIAL] Evitar ataques RFI a la web de tu server (solo php es vulnerable) xenowort Español/Spanish 38 06/07/2010 10:30 PM
[ayuda]evitar logeo rcon desde remote console RcoN! Español/Spanish 7 17/03/2010 05:52 AM


All times are GMT. The time now is 11:23 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.