Иконка ресурса

NoSteamBans for SourceBans 1.1

DarklSide

Участник
Сообщения
931
Реакции
468
В такой ситуации нужно предотвращать уязвимость или спровоцировать её на недействительность.
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,376
@DarklSide, [HIDE="600"]да хоть что пиши в кварах, всеровно при изменение в консоли клиента пишет какие квары были изменены красным[/HIDE]
 

DarklSide

Участник
Сообщения
931
Реакции
468
@Серый™, [HIDE="1200"]
В такой ситуации нужно предотвращать уязвимость или спровоцировать её на недействительность.

<< "предотвращать уязвимость"
Купаться в эмуляторе.

<< "спровоцировать её на недействительность"
От корня к верху:
a. Запретить некоторым Emu вход (<онлайн).

b. (button Restore Default - stid'tools) Заново парсировать (steam_id) при подключении клиента, и сравнить с текущим (GetClientAuthString), далее блокировать при несовпадении.

---

Далее исключается << "предотвращать уязвимость" и << "спровоцировать её на недействительность" и следуя вместе с ней:

Рассматриваемый выше вариант - изменения значения кваров, возможный пример узнать через "cvarlist":
cvarlist log logs.log
до коннета к серверу.

cvarlist log logs2.log
после принудительного отключения.

и последующего сравнения "cstrike/logs.log" и "cstrike/logs2.log"

---

Чтобы не сохранять от сервера изменённые значения при следующей сессии (запуск клиента):
edit cvar'value "ShowVGUIPanel" записываются после вызова "ExitProcess"
(ExitProcess function (Windows)),

если мы завершим процесс через функцию "TerminateProcess"
(TerminateProcess function (Windows)) - не произойдет уведомление, как и вызов функции, где изменённые значения записываются в файл (в настоящем - config.cfg);

Её аналогичный результат (запись) - консольной команды "host_writeconfig".

Cымитировать выход (TerminateProcess), например через "Диспетчер задач" - вкладка "процессы".

---

Реализованно [псевдокод]:


PHP:
if(проверяем значение cvar''name_value клиента, в local''базе на состояние блокировки) // cvar''value - для каждого клиента разный.
{
    // присутствует блокировка в local''базе
    if(проверяем оставшиеся время)
    {
        //Не истекло
        Kick(Блокируем до окончании времени)
    }
    else
    {
        ClearBlock(Очищаем время'[\]0' - снятие блокировки)
    }
}
else
{
    // блокировка отсутствует в local''базе - пустое Время'\0' у данного cvar''value
    if(проверяем steam''id клиента - на  наличие в базе)
    {
        // присутствует
        if(не совпадение ключ - значение: steam''id и cvar''value в db)
        {
             BanIP(Блокируем''ip на 30..1440 min) // force перебор и edit steam''id
        }
        // else идентичен - пропускаем на сервер
     }
     else
     {
         // отсутствует        
         CreatePlayer(Создание ключ - значение в local''базе, ключ (steam_id), значение (cvar''value - результат составленной формулой)
     }
}

BlockClient(iClient)
{
    new Handle:hKv = CreateKeyValues("data");

    decl String:sHostName[64];
    GetClientName(0, sHostName, sizeof(sHostName));
    KvSetString(hKv, "title", sHostName);

    KvSetString(hKv, "type", "1"); // "type", "2");
    KvSetString(hKv, "msg", "motd");

    decl String:sCmd[128];
    strcopy(sCmd, sizeof(sCmd), "cvar'name_value %i", formula_with_unixtime); // _adjust %i; vban 0 0; chooseteam
    KvSetString(hKv, "cmd", sCmd);

    ShowVGUIPanel(iClient, "info", hKv);

    CloseHandle(hKv);
}

---

@DarklSide, ***Скрытое содержимое не может быть процитировано.***


Далее возможный список (без уведомления):

ai_report_task_timings_on_limit
ai_think_limit_label
scene_showfaceto

// exec CFG scripts?!
r_eyegloss
r_eyemove
r_eyeshift_x
r_eyeshift_y
r_eyeshift_z
r_eyesize

// Cheat
r_ambientboost
r_ambientmin
r_ambientfraction
r_ambientfactor

r_drawmodelstatsoverlaymin
r_drawmodelstatsoverlaymax
closecaption
skill (1-3)

// Часто изменяемые через меню "Настройки"
r_gamma
mp_decals
suitvolume

sql'база-данных можно изменить на mysql, и использовать её на community.
Либо в public c использовании единной базой и сокрытие cvar'a,
например путем удаленного получения cvar'name и присваивание его в глобальную переменную - при запуске сервера,
так же получать значения в formula_with_unixtime (при этом очистить базу), т.к. он'fwu для минимизирования перебора - путем создание/присваивания нового алгоритма).



P.S.:

Рассматриваемый вариант присваивания cvar'a нецелесообразный, т.к. имеет свойство быстрого нахождения или втоматически спровоцирует её (Защиту) на недействительность от имени клиента (TerminateProcess) - если не используется "host_writeconfig" или аналогичный результат (запись) ;

Поэтому склонен к пункту b:
<< В такой ситуации нужно предотвращать уязвимость или (b.) спровоцировать её (уязвимость) на недействительность от имени сервера.
<< b. (button Restore Default - stid'tools) Заного парсировать (steam_id) при подключении клиента, и сравнить с текущим (GetClientAuthString), далее блокировать при несовпадении.
[/HIDE]
 
Последнее редактирование:

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,376
@DarklSide, Интересненько, но плагин писал не я, я тока декомпелил и с него делал свой исходник, так как оригинал был потерян. Оффтоп Без надёжного эмуля не сделать нормальный бан, та как остальное обходится в два счёта.
 

andrey19992

Участник
Сообщения
487
Реакции
101
@DarklSide, Интересненько, но плагин писал не я, я тока декомпелил и с него делал свой исходник, так как оригинал был потерян. Оффтоп Без надёжного эмуля не сделать нормальный бан, та как остальное обходится в два счёта.
По хорошему надо чтоб создатель эмуля сделал так чтобы эмулятор генерировал аля СТИМИД не по IP а по чему то другому, например по железу. Но я не думаю что этим ктото будет заморачиваться......
 

Monomizer

Держу JDW в бане.
Сообщения
1,947
  • Команда форума
  • #30
По хорошему надо чтоб создатель эмуля сделал так чтобы эмулятор генерировал аля СТИМИД не по IP а по чему то другому, например по железу. Но я не думаю что этим ктото будет заморачиваться......
А разве он не по железу генерит, вроде бы по харду точно?
----
Лучше бы при входе на сервер в userinfo пихали бы какую нить дичь типа md5, ибо юзеринфо чистить умеют единица, а при баны пусть хоть стим айди меняет, ip и что они там ещё делают - остался хеш в юзеринфо - в бан, на 1.6. отрабатывает на ура, в ксс такое тоже должно быть реализуемо
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,376
@Monomizer, он не по харду, а по виртуальному серийному локального диска(тома).
@andrey19992, по хорошему настоящим программистам на ... игру эту. Если конечно ты за бабки не закажешь написать тебе такой.
 

Edmon666

Участник
Сообщения
24
Реакции
0
Вот сливаю приват плагин. Просто блок (только для ксс 34).
Ваш плагин лень переписывать :beach::biggrin:

Кто может для этого плагина запилить меню простое меню 1 -забанить игрока 2-разбанить игрока 3-выход
 

Yuriy

Участник
Сообщения
11
Реакции
3

AleksandrM3

Участник
Сообщения
137
Реакции
2
помогите сделать менюшку
C-подобный:
"Commands"
{
    "PlayerCommands"
       {
       "Ban (Block) игрока"
        {
              "cmd" "sm_block #1"
              "admin" "sm_kick"
              "execute" "player"
              "1"
                         {
              "type" "player"
              "method" "userid"
              "title" "блокнуть:"
                         }
        }
    }
}
список игроков появляется, но когда выбираешь игрока , пишет что не найден подходящий игрок
--- Добавлено позже ---
никак не пойму что надо еще сделать , чтобы заработала
--- Добавлено позже ---
поменять надо
"method" "steamid" на "method" "usermid" пользуйте кому надо
--- Добавлено позже ---
заменил в коде
 
Последнее редактирование:

lexx777

Участник
Сообщения
309
Реакции
41
Кстати, а ложных банов никто не замечал.
Посмотрел сейчас в списке банов по ip те люди у которых нету бана по стиму почему то.
 

zdorovo

Участник
Сообщения
13
Реакции
1
помогите сделать менюшку
C-подобный:
"Commands"
{
    "PlayerCommands"
       {
       "Ban (Block) игрока"
        {
              "cmd" "sm_block #1"
              "admin" "sm_kick"
              "execute" "player"
              "1"
                         {
              "type" "player"
              "method" "userid"
              "title" "блокнуть:"
                         }
        }
    }
}
список игроков появляется, но когда выбираешь игрока , пишет что не найден подходящий игрок
--- Добавлено позже ---
никак не пойму что надо еще сделать , чтобы заработала
--- Добавлено позже ---
поменять надо
"method" "steamid" на "method" "usermid" пользуйте кому надо
--- Добавлено позже ---
заменил в коде

Всё равно,также пишет,что не найден игрок
 

Felton

Участник
Сообщения
799
Реакции
59
@Nikolay
Проверяй не на себе или ботов а на реальных игроках.
 

Толстый

Участник
Сообщения
98
Реакции
17
Плагин стоит достаточно давно. Установлен СБ с базой mysql. Файл по пути cstrike/cfg/sourcemod/NoSteamBansSB.cfg присутствует, настройки по дефолту, а файла NSBlist.txt по пути addons/sourcemod/data нет. Почему? Баны пиратикам раздавались, и никто, вроде, не хвастался, что с баном сумел на сервер зайти.
 

SKORAGON

Участник
Сообщения
138
Реакции
16
хмм, у меня materialadmin последней версии, работать будет?
 
Сверху Снизу