Szerző Téma: Anti Bot Script  (Megtekintve 2312 alkalommal)

Anti Bot Script
« Dátum: 2012. Július 06. - 13:24:18 »
+1 Show voters
Üdv mindenkinek.
Sajnos én is áldozatául estem az ujonnan feltünt hacknek, amivel sok sok botot küldenek fel a szerverünkre. Ennek hatására rákerestem sampforumona dologra találtam is egy scriptet amit a fiuk áthoztak hiv fórumról.
http://sampforum.hu/index.php?topic=24256.0
Be raktam, de ezzel a  scripttel az a gond, hogy sajnos lehet olyat is csinálni a hackkel, hogy felcsatlakozik és egybõl le is csatlakozik, így elég nehezen veszi észre az a script, ha ilyen támadás van. Ennek kiküszöbölésének érdekében megírtam ezt a scriptet.
Mûködéséhez szükséges a Gvar plugin (http://sampforum.hu/index.php?topic=9769.0). és dudb include (http://forum.sa-mp.com/showthread.php?t=31)
A script mûködése elég egyszerû. Csatlakozáskor lekérdezzük a játékos IP címét, átalakítjuk udbhas függvénnyel az IP címet egyetlen számadattá. (nem erre szokták használni de itt most tökéletes) Egyel növeljük azt a GV ar változót, amelynek az azonosítója a számmá alakított IP cím. megnézzük, hogy a növelt érték meghaladja e a maximum csatlakoztatható emberek számát azonos IP rõl adott idõn belül. ha meghaladja banolja. Ezután indítunk egy timert ami az adott idõre van beállítja és egyel csökkentjük az adott idõ elteltével a változót. (valamiért nálam filterscriptként nem csinált semmit a script, de ha beleírtam a gamemodeba a scriptet tökéletesen mûködött)
Letöltés (pastebin): http://pastebin.com/YMj6Mxhk
a script konkrétan:
 
#define FILTERSCRIPT
#include <a_samp>
#include <gvar>
#include <dudb>
#define MAX_CONNECTIONS_FROM_IP     2 //azért 2 mert ha esetleg véletlen testvérek csatlakoznak és pont ugyanakkor akkor õket ne banolja
#define TIME_BETWEEN_CONNECTIONS   500
#pragma unused ret_memcpy
 
//IP cím számként tárolva
public OnFilterScriptInit()
{
print(\"BOT VÉDELEM AKTIVÁLVA\");
return 1;
}
public OnFilterScriptExit()
{
print(\"BOT VÉDELEM DEAKTIVÁLVA\");
return 1;
}
public OnPlayerConnect(playerid)
{
    new hashIP,IP[32];
GetPlayerIp(playerid,IP,sizeof(IP));
hashIP = udbhash(IP);
SetGVarInt(\"IPconnections\",GetGVarInt(\"IPconnections\",hashIP)+1,hashIP);
if(GetGVarInt(\"IPconnections\",hashIP) > MAX_CONNECTIONS_FROM_IP)
{
printf(\"BOT: connections from %s. IP has been banned.\",IP);
    BanEx(playerid, \"BOT attack! version Devil\");
    SetTimerEx(\"ConnectionBack\",TIME_BETWEEN_CONNECTIONS,0,\"d\",hashIP);
    return 1;
}
else
{
SetTimerEx(\"ConnectionBack\",TIME_BETWEEN_CONNECTIONS,0,\"d\",hashIP);
}
return 0;
}
 
forward ConnectionBack(hashid);
public ConnectionBack(hashid)
{
SetGVarInt(\"IPconnections\",GetGVarInt(\"IPconnections\",hashid)-1,hashid);
if(!GetGVarInt(\"IPconnections\",hashid)) DeleteGVar(\"IPconnections\",hashid);
}

 
Ez a script és a fentebb említett script kombinálva szinte tökéletes védelmet nyújt a nemkívánatos BOT támadások ellen :)
« Utoljára szerkesztve: 2012. Július 06. - 20:18:44 írta hegdavid95 »

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
Anti Bot Script
« Válasz #1 Dátum: 2012. Július 06. - 14:04:37 »
0 Show voters
Nemrossz, de a GVar-t törölhetnéd is amikor bannolod, mivel így memóriaszivárgás keletkezik.
Amúgy meg ez esetben fölösleges a globális string.

Anti Bot Script
« Válasz #2 Dátum: 2012. Július 06. - 14:10:43 »
0 Show voters
Köszi :D javitottam amiket mondtál

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Anti Bot Script
« Válasz #3 Dátum: 2012. Július 06. - 15:41:26 »
0 Show voters
Jó lett, de 1 error van nekem:
C:\\Documents and Settings\\Rendszergazda\\Asztal\\FeW0.3e\\gamemodes\\....pwn(341) : error 017: undefined symbol \"udbhash\"
Pawn compiler 3.2.3664           Copyright © 1997-2006, ITB CompuPhase
1 Error.

Anti Bot Script
« Válasz #4 Dátum: 2012. Július 06. - 20:16:44 »
0 Show voters
dudb include szükséges. Nem irtam oda sry.

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Anti Bot Script
« Válasz #5 Dátum: 2012. Július 06. - 20:20:33 »
0 Show voters
Hát azt #include <dudb> ebbõl kiszürtem.. xd
de utána még1 fatal, hogy a dutils.inc hiányzott, és beraktam mind2 inc-t amit leszedtem soli...-n és ezt az error-t írta ki.

Anti Bot Script
« Válasz #6 Dátum: 2012. Július 06. - 20:50:56 »
0 Show voters
Tessék itt van az én két includem ezzel már mennie kell
dudb: http://pastebin.com/ueM34GPC
dutils: http://pastebin.com/8ZxMPeyD

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal