flood site

Discutii despre tot ce nu se incadreaza in celelalte categorii.

Moderators: Moderatori ajutatori, Moderatori

User avatar
HuaN
Membru, skill +1
Membru, skill +1
Posts: 324
Joined: 23 Oct 2012, 20:14
Detinator Steam: Da
Has thanked: 34 times
Been thanked: 40 times

16 Feb 2014, 20:41

Daca e forum nu prea ai sansa de scapare ca pana si cele mai tari site-uri sunt vulnerabile nu un forum.. orcum poti incearca cu cloudflare , ovh etc..
uite aici

Code: Select all

#include <a_samp>
    #include <FileFunctions>
     
    #define ATTACK_TYPE_PLAYERID 1
    #define ATTACK_TYPE_IP 2
     
    new File:ServerLogFile;
    new addostimer;
     
    main()
    {
            print("|----------------------------------|");
            print("| Anti DDOS filterscript v0.1      |");
            print("|----------------------------------|");
    }
     
    public OnFilterScriptInit()
    {
            ServerLogFile = fileOpen("server_log.txt", io_Read);
            addostimer = SetTimer("Anti-DDoS", 100, true);
            return 1;
    }
     
    public OnFilterScriptExit()
    {
            KillTimer(addostimer);
            return 1;
    }
     
    forward AntiDDoS();
    public AntiDDoS()
    {
            if(!ServerLogFile)
            {
                    print("Error opening server_log.txt!");
                    KillTimer(addostimer);
            }
            else
            {
                    new string[128];
                    new strarr[2][20];
                    fileSeek(ServerLogFile, -128, seek_End);
                    while(fileRead(ServerLogFile, string)){}
     
                    new pos = strfind(string, "Invalid client connecting from ", true, 10);
                    if(pos == 11)
                    {
                            OnDDosAttackAttempt(ATTACK_TYPE_IP, INVALID_PLAYER_ID, string[pos+31]);
                    }
     
                    pos = strfind(string, "Warning: /rcon command exploit from: ", true, 10);
                    if(pos == 11){
                            split(string[pos+37], strarr, ':');
                            OnDDosAttackAttempt(ATTACK_TYPE_PLAYERID, strval(strarr[0]), strarr[1]);
                    }
     
                    pos = strfind(string, "Warning: PlayerDialogResponse PlayerId: ", true, 10);
                    if(pos == 11){
     
                            new idx = 0;
                            new plid = strval(strtok(string[pos+39], idx));
                            SetPVarInt(plid, "dialogDDosAtt", GetPVarInt(plid, "dialogDDosAtt")+1);
                            print("");
                            if(GetPVarInt(plid, "dialogDDosAtt") > 2)OnDDosAttackAttempt(ATTACK_TYPE_PLAYERID, plid, " ");
                    }
     
                    pos = strfind(string, "Warning: PlayerDialogResponse crash exploit from PlayerId: ", true, 10);
                    if(pos == 11){
                            new idx = 0;
                            OnDDosAttackAttempt(ATTACK_TYPE_PLAYERID, strval(strtok(string[pos+59], idx)), " ");
                    }
     
                    pos = strfind(string, "Packet was modified, sent by id: ", true, 10);
                    if(pos == 11){
                        split(string[pos+33], strarr, ',');
                            OnDDosAttackAttempt(ATTACK_TYPE_PLAYERID, strval(strarr[0]), " ");
                    }
     
                    pos = strfind(string, "Remote Port Refused for Player: ", true, 10);
                    if(pos == 11){
                            new idx = 0;
                            OnDDosAttackAttempt(ATTACK_TYPE_PLAYERID, strval(strtok(string[pos+32], idx)), " ");
                    }
     
                    if(strfind(string, " due to a 'server full' attack") != -1)
                    {
                            pos = strfind(string, "Blocking ", true, 10);
                            if(pos == 12)
                            {
                                    new idx = 0;
                                    OnDDosAttackAttempt(ATTACK_TYPE_IP, INVALID_PLAYER_ID, strtok(string[pos+9], idx));
                            }
                    }
            }
    }
     
    forward OnDDosAttackAttempt(type, playerid, ip[]);
    public OnDDosAttackAttempt(type, playerid, ip[])
    {
        new string[128];
            if(type == ATTACK_TYPE_PLAYERID)
            {//block a playerid
                    BanEx(playerid, "DDOS protect");
                    printf("Blocked attack from playerid %d", playerid);
     
            }else if(type == ATTACK_TYPE_IP)
            {//block an ip address
            format(string, sizeof(string), "banip %s", ip);
                    SendRconCommand(string);
                    printf("Blocked attack from ip: %s", ip);
            }
     
    }
     
    stock strtok(const string[], &index)
    {
            new length = strlen(string);
            while ((index < length) && (string[index] <= ' '))
            {
                    index++;
            }
     
            new offset = index;
            new result[20];
            while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
            {
                    result[index - offset] = string[index];
                    index++;
            }
            result[index - offset] = EOS;
            return result;
    }
     
    stock split(const strsrc[], strdest[][], delimiter)
    {
            new i, li;
            new aNum;
            new len;
            while(i <= strlen(strsrc)){
                    if(strsrc[i]==delimiter || i==strlen(strsrc)){
                            len = strmid(strdest[aNum], strsrc, li, i, 128);
                            strdest[aNum][len] = 0;
                            li = i+1;
                            aNum++;
                    }
                    i++;
            }
            return 1;
    }

c


eu iti recomand sa iei un webhost si scapi de agarici aia cu o protectie buna daca nu te pricepi la protectie pm te ajut eu cand mai intru pe la pc
Citeste regulamentul. Data viitoare iei warn. ma si daca nu vreau?
Post Reply

Return to “Discutii generale”

  • Information