SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Reply
 
Thread Tools Display Modes
Old 27/12/2012, 11:06 AM   #71
stabker
High-roller
 
Join Date: Mar 2012
Posts: 1,311
Reputation: 86
Default Re: Атака сервера

Quote:
Originally Posted by AirKite View Post
Более того в его инклудах YSI не однократно указывал ему на очепятки и касяки. Код специфичный, но не сложный. Понятное дело, кому как. Сам лично тоже не использую его инклуды. Тут же речь о плагине, который как минимум можно подглядеть как устроен плагин. Там в принципе ничего хитрого не должно быть, просто чтение лога и вызов коулбэка по факту его обновления.
Ага, специфичный . Я когда его код смотрю, у меня возникает чувство, что он сначала все нормально пишет, а потом заменяет названия переменных и функций, специально, чтобы никто не понял, что там происходит.

Кстати, возвращаясь к теме самой темы: GetPlayerNetworkStats очень часто возвращает ошибочные данные, не знаю при каких условиях, но у меня каждый день банит по 3-6 человек, некоторых не знаю, некоторых знаю, что они чистые. Приходится всех разбанивать каждую полночь. И это не смотря на то, что я сделал проверку, банить только после >= 5 скачков Messages in Send buffer.

А что, если их кикать, а не банить?

UPD:
Сделаю пока что временный бан ип адреса, если игрок подозревается в атаке.

Last edited by stabker; 27/12/2012 at 01:05 PM.
stabker is offline   Reply With Quote
Old 27/12/2012, 02:57 PM   #72
dimonml
Gangsta
 
dimonml's Avatar
 
Join Date: Oct 2008
Location: Russia, Moscow
Posts: 688
Reputation: 28
Default Re: Атака сервера

Quote:
Originally Posted by -Stranger- View Post
Я не знаю в каком случае OnDialogResponse может вернуть INVALID_PLAYER_ID
Судя по коду сервера 0.3e, INVALID_PLAYER_ID в коллбек pawn никогда не попадет.
__________________
dimonml is offline   Reply With Quote
Old 27/12/2012, 05:23 PM   #73
SDraw
Gangsta
 
SDraw's Avatar
 
Join Date: Apr 2011
Location: Earth
Posts: 582
Reputation: 157
Default Re: Атака сервера

Quote:
Originally Posted by AirKite View Post
Попробуйте описать проблему ******. Обычно быстро отвечает и фиксит.
Писал еще давно, не реагировал...Попытаюсь еще раз...
__________________
GitHub
SDraw is offline   Reply With Quote
Old 27/12/2012, 08:04 PM   #74
jhonyxakep
Gangsta
 
jhonyxakep's Avatar
 
Join Date: May 2011
Location: Russia, Moscow
Posts: 790
Reputation: 43
Default Re: Атака сервера

Quote:
Судя по коду сервера 0.3e, INVALID_PLAYER_ID в коллбек pawn никогда не попадет.
Это вы каким таким дебагером отследили внутренности Pawn машины
jhonyxakep is offline   Reply With Quote
Old 28/12/2012, 04:46 AM   #75
DANGER1979
Gangsta
 
DANGER1979's Avatar
 
Join Date: Sep 2009
Location: Belarus
Posts: 793
Reputation: 21
Default Re: Атака сервера

Quote:
Originally Posted by stabker View Post
Ага, специфичный . Я когда его код смотрю, у меня возникает чувство, что он сначала все нормально пишет, а потом заменяет названия переменных и функций, специально, чтобы никто не понял, что там происходит.

Кстати, возвращаясь к теме самой темы: GetPlayerNetworkStats очень часто возвращает ошибочные данные, не знаю при каких условиях, но у меня каждый день банит по 3-6 человек, некоторых не знаю, некоторых знаю, что они чистые. Приходится всех разбанивать каждую полночь. И это не смотря на то, что я сделал проверку, банить только после >= 5 скачков Messages in Send buffer.

А что, если их кикать, а не банить?

UPD:
Сделаю пока что временный бан ип адреса, если игрок подозревается в атаке.
у меня почему то
Messages in Send buffer.
всегда равна нулю у всех.
Но Messages sent имеет большие значения.
__________________
Virtual World Developer
DANGER1979 is offline   Reply With Quote
Old 28/12/2012, 06:06 AM   #76
dimonml
Gangsta
 
dimonml's Avatar
 
Join Date: Oct 2008
Location: Russia, Moscow
Posts: 688
Reputation: 28
Default Re: Атака сервера

Quote:
Originally Posted by jhonyxakep View Post
Это вы каким таким дебагером отследили внутренности Pawn машины
Просто с помощью дизассемблера посмотрел тот кусок сервера, который обрабатывает пришедший пакет от клиента. До amx машины там дело не доходит.
__________________
dimonml is offline   Reply With Quote
Old 28/12/2012, 12:44 PM   #77
AirKite
Gangsta
 
AirKite's Avatar
 
Join Date: Feb 2009
Posts: 733
Reputation: 21
Default Re: Атака сервера

Quote:
Originally Posted by DANGER1979 View Post
у меня почему то
Messages in Send buffer.
всегда равна нулю у всех.
Но Messages sent имеет большие значения.
Первое это буффер на отправку пакетов. А второе это уже сколько было отправлено их на сервер. Их и будет много, и чем больше игрок на сервере, тем соответственно он больше отправил трафика на сервер. Некоторые проверяют насколько сильно увеличился этот показатель за секунду, а не всего.
AirKite is offline   Reply With Quote
Old 02/01/2013, 08:16 AM   #78
MichaelKonsta
Little Clucker
 
MichaelKonsta's Avatar
 
Join Date: Dec 2012
Posts: 36
Reputation: 22
Default Re: Атака сервера

http://mishakonsta.ru/bugs-fix/17-an...mazahacka.html
__________________
Лучший мониторинг и рейтинг Серверов San Andreas Multiplayer. Лучший рейтинг игровых серверов SAMP (А так же CR-MP), и других адаптаций
MichaelKonsta is offline   Reply With Quote
Old 02/01/2013, 11:56 AM   #79
AirKite
Gangsta
 
AirKite's Avatar
 
Join Date: Feb 2009
Posts: 733
Reputation: 21
Default Re: Атака сервера

Quote:
Originally Posted by MichaelKonsta View Post
pawn Code:
#include <a_samp>

#define MAX_MESSAGES 1500

new MessagesCount[MAX_PLAYERS];
new lastchecktime;

public OnFilterScriptInit()
{
    for(new i=0; i<MAX_PLAYERS; i++)MessagesCount[i] = 9999999;
    SetTimer("NetworkUpdate", 5000, true);
    return 1;
}

public OnPlayerConnect(playerid)
{
    MessagesCount[playerid] = 9999999;
    return 1;
}

forward NetworkUpdate();
public NetworkUpdate()
{
    new stats[300], idx, pos, msgs;
    for(new i=0; i<MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            idx = 0;
            GetPlayerNetworkStats(i, stats, sizeof(stats));
            pos = strfind(stats, "Messages received: ", false, 209);//209 - минимальная позиция "Messages received" в строке
            msgs = strval(strtok(stats[pos+19], idx));
            if(msgs - MessagesCount[i] > MAX_MESSAGES)
            {
                new pname[MAX_PLAYER_NAME];
                GetPlayerName(i, pname, sizeof(pname));
                printf("%s[id:%d] banned for UDP flood", pname, i);
                BanEx(i, "UDP flood");
            }
            MessagesCount[i] = msgs;
        }
    }
    lastchecktime = GetTickCount();
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/mctop", true))
    {
        if(!IsPlayerAdmin(playerid))return 1;//rcon only
        SetTimerEx("ShowMessagesCountTop10", 4000-(GetTickCount()-lastchecktime), false, "d", playerid);
        return 1;
    }
    return 0;
}

forward ShowMessagesCountTop10(playerid);
public ShowMessagesCountTop10(playerid)
{
    new stats[300], idx, pos, msgs, SortedArray[MAX_PLAYERS][2], i, string[256], pname[MAX_PLAYER_NAME];
    for(i=0; i<MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            idx = 0;
            GetPlayerNetworkStats(i, stats, sizeof(stats));
            pos = strfind(stats, "Messages received: ", false, 209);
            msgs = strval(strtok(stats[pos+19], idx));
            SortedArray[i][0] = msgs - MessagesCount[i];
            SortedArray[i][1] = i;
        }
    }

    for(i=0; i<MAX_PLAYERS; i++)// бабл сорт
    {
        if(IsPlayerConnected(i))
        {
            for(new j=0; j<i; j++)
            {
                if(SortedArray[i][0] > SortedArray[j][0])
                {
                    new temp = SortedArray[i][0]; //swap
                    SortedArray[i][0] = SortedArray[j][0];
                    SortedArray[j][0] = temp;
                    temp = SortedArray[i][1];
                    SortedArray[i][1] = SortedArray[j][1];
                    SortedArray[j][1] = temp;
                }
            }
        }
    }
   
    SendClientMessage(playerid, 0xFFFF00AA, "Top 10 high packets players:");
    for(i=0; i<10; i++)
    {
        if(IsPlayerConnected(i))
        {
            GetPlayerName(SortedArray[i][1], pname, sizeof(pname));
            format(string, sizeof(string), "%d. %s[id:%d] - %d packets", i+1, pname, SortedArray[i][1], SortedArray[i][0]);
            SendClientMessage(playerid, 0xFFFF00AA, string);
        }
    }
    return 1;
}

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;
}

// (c) MazaHACKa
Так то ничего что Messages received: это входящие пакеты а не исходящие...
AirKite is offline   Reply With Quote
Old 06/07/2013, 04:20 PM   #80
Jon_De
High-roller
 
Join Date: Mar 2011
Location: ru
Posts: 1,246
Reputation: 21
Default Re: Атака сервера

Quote:
Originally Posted by eakwarp View Post
Между прочим, тоже столкнулся с подобной проблемой, только у меня еще и ботов выбивало, в коде все в порядке, в логах только игроки, причем в этот момент на какого либо из игроков(причем судя по всему к атаке не имеющего отношения) идет варнинг на модифицированный пакет. Сервер уходит в логаут секунд на 30. К сожалению, реально лень отслеживать потребление ресурсов при этом, ибо они у меня не ограничены по сути, но нечто, процессорное время занимает чуть более чем полностью. С кодом не связано, очередной эксплойт.
те же симптомы (ботов выбивает, сервер на 30 сек виснет, варнинги от простых игроков), как исправил?
Jon_De 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
Взлом сервера! Ghost~Ride Русский/Russian 7 11/12/2012 03:31 PM
SA-MP 0.3e R2 обновление сервера Stepashka Русский/Russian 20 17/11/2012 12:37 PM
Атака сервера stabker Русский/Russian 22 08/09/2012 12:59 PM
Зависание сервера RoAChik Русский/Russian 7 30/07/2012 02:03 PM
Вылетаение сервера serpip Русский/Russian 43 11/05/2012 05:10 PM


All times are GMT. The time now is 10:26 PM.


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