Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

15 страниц V   1 2 3 ... 13 14 »

Anti Reliable channel overflowed

, убираем вылет игроков
Screed
сообщение 29.8.2012, 17:19
Сообщение #21
Стаж: 13 лет

Сообщений: 150
Благодарностей: 28
Полезность: 0

Цитата
для параноиков: плагин слишком мал чтобы туда зашить бекдор

Не веришь? Просмотри .amxx файл диссасемблером.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 29.8.2012, 17:29
Сообщение #22


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Цитата(Cracky @ 29.8.2012, 19:17) *
У клиента просто могут не сработать некоторые визуальные фишки/сообщение в чат пропустит. Поидее.
А вообще в 700 кб плагин можно вшить бэкдор.

Не пропустит.
Откуда размер 700кб? В 700кб, наверное все 4 тома романа "Война и мир" можно вшить.
Размер плагина без логов: 961 байт (961 байт). Тем более сказал уже что выложу чуть позже исходники. Не доверяете - ждите, не хотите ждать - напишите сами. Я в прошлом сообщении написал как он работает, сигнатура в архиве есть, что еще нужно?


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Surf
сообщение 29.8.2012, 17:50
Сообщение #23


Стаж: 14 лет

Сообщений: 1089
Благодарностей: 501
Полезность: 583

Цитата(Surf @ 29.8.2012, 4:22) *
mazdan,
1. пишем софт который будет игнорить пакет SVC_DISCONNECT
2. заходим на сервер с таким плагином
3. игрока не возможно кикнуть

профит

я к тому, что если клиент не отреагирует на какой либо пакетик, его будет флудить этим пакетом, пока его не кикнет с причиной Reliable channel overflowed либо пока клиент не отреагирует. А если постоянно блокировать пакетик который отвечает за кик игрока (SVC_DISCONNECT) то игрок будет продолжать играть на сервере, т.е сервер поможет ему в этом
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Mot1on
сообщение 29.8.2012, 17:56
Сообщение #24
Стаж: 13 лет

Сообщений: 168
Благодарностей: 61
Полезность: 0

Цитата(Screed @ 29.8.2012, 19:19) *
Не веришь? Просмотри .amxx файл диссасемблером.

Цитата(mazdan @ 29.8.2012, 17:24) *
Не работает amxdump потому что без debug информации скомпилирован

cbf1b2bfde1a.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
cs-portal
сообщение 29.8.2012, 18:00
Сообщение #25
Стаж: 16 лет

Сообщений: 8181
Благодарностей: 2709
Полезность: 0

я пробовал как то блочить svc у меня не вышло есть рабочий код? правда я без орфея пробовал

Отредактировал: cs-portal, - 29.8.2012, 18:00
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Surf
сообщение 29.8.2012, 18:05
Сообщение #26


Стаж: 14 лет

Сообщений: 1089
Благодарностей: 501
Полезность: 583

Rejiser,
Код
0x0         HALT                    0x0

0x8         PROC; plugin_init
0xC         PUSH.C                 0x48; "mazdan"
0x14        PUSH.C                 0x38; "1.0"
0x1C        PUSH.C                  0x0
0x24        PUSH.C                  0xC
0x2C        SYSREQ.C      register_plugin                                   // регистрируем плагин anti_reliable 1.0 mazdan
0x34        STACK                  0x10
0x3C        PUSH.C                  0x0
0x44        PUSH.C                 0x44
0x4C        PUSH.C                 0x9C; "1.0"
0x54        PUSH.C                 0x64; "anti_reliable"
0x5C        PUSH.C                 0x10
0x64        SYSREQ.C      register_cvar
0x6C        STACK                  0x14
0x74        PUSH.C                 0xE4; "1,0 by mazdan"
0x7C        PUSH.C                 0xAC; "anti_reliable"
0x84        PUSH.C                  0x8
0x8C        SYSREQ.C      set_cvar_string
0x94        STACK                   0xC                                      // Квар "anti_reliable" "1,0 by mazdan"
0x9C        ZERO.pri  
0xA0        RETN      

0xA4        PROC; plugin_cfg
0xA8        PUSH.C                  0x0
0xB0        PUSH.C                0x158; "SV_DropClient"
0xB8        PUSH.C                0x154; 0
0xC0        PUSH.C                0x11C; "SV_DropClient"
0xC8        PUSH.C                  0x8
0xD0        SYSREQ.C      OrpheuGetFunction
0xD8        STACK                   0xC
0xE0        PUSH.pri  
0xE4        PUSH.C                  0xC
0xEC        SYSREQ.C      OrpheuRegisterHook
0xF4        STACK                  0x10                                     // Хук события SV_DropClient (? с orpheu не работал)
                                                                           // -> функция SV_DropClient
0xFC        ZERO.pri  
0x100       RETN      
                                                                           // Сама функция
0x104       PROC; SV_DropClient
0x108       PUSH.C                0x190; "Reliable channel overflowed"
0x110       PUSH.S                 0x14
0x118       PUSH.C                  0x8
0x120       SYSREQ.C           containi                                    // Если содержит строку "Reliable channel overflowed" - блочим :)
0x128       STACK                   0xC
0x130       CONST.alt              -0x1
0x138       JEQ               jump_0000
0x140       CONST.pri               0x2
0x148       JUMP              jump_0001
0x150       ZERO.pri; target:jump_0000
0x154       RETN; target:jump_0001


Отредактировал: Surf, - 29.8.2012, 18:13
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
cs-portal
сообщение 29.8.2012, 18:06
Сообщение #27
Стаж: 16 лет

Сообщений: 8181
Благодарностей: 2709
Полезность: 0

ето похоже на блок а не на фикс причины)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Mot1on
сообщение 29.8.2012, 18:08
Сообщение #28
Стаж: 13 лет

Сообщений: 168
Благодарностей: 61
Полезность: 0

cs-portal,
собственно автор именно это и написал.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
cs-portal
сообщение 29.8.2012, 18:25
Сообщение #29
Стаж: 16 лет

Сообщений: 8181
Благодарностей: 2709
Полезность: 0

https://forums.alliedmods.net/showthread.ph...7930&page=5
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Surf
сообщение 29.8.2012, 18:32
Сообщение #30


Стаж: 14 лет

Сообщений: 1089
Благодарностей: 501
Полезность: 583

Код
#include <amxmodx>
#include <orpheu>

public plugin_init()
{
    register_plugin("anti_reliable", "1.0", "mazdan");
    
    register_cvar("anti_reliable", "1.0", FCVAR_SERVER | FCVAR_SPONLY); // ...
    set_cvar_string("anti_reliable", "1,0 by mazdan");                    // Зачем так, не знаю, можно лучше и проще :)
}

public plugin_cfg()
{
    OrpheuRegisterHook(OrpheuGetFunction("SV_DropClient"), "SV_DropClient", OrpheuHookPre);
}

public OrpheuHookReturn:SV_DropClient(a, b, const szMessage[])
{
    if(containi(szMessage, "Reliable channel overflowed") != -1)
    {
        return OrpheuSupercede;
    }
    
    return OrpheuIgnored;
}


так?))

Отредактировал: Surf, - 29.8.2012, 19:02
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
cs-portal
сообщение 29.8.2012, 18:36
Сообщение #31
Стаж: 16 лет

Сообщений: 8181
Благодарностей: 2709
Полезность: 0

бред
set_cvar_string("anti_reliable", "1,0 by mazdan"); // Зачем так, не знаю, можно лучше и проще :)

если строка не используется в твоем коде вообще то зачем она нужна?)
должно быть register_cvar(" %s", VERSION, FCVAR_SPONLY|FCVAR_SERVER) поидее

Отредактировал: cs-portal, - 29.8.2012, 18:37
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Surf
сообщение 29.8.2012, 18:37
Сообщение #32


Стаж: 14 лет

Сообщений: 1089
Благодарностей: 501
Полезность: 583

Цитата(cs-portal @ 29.8.2012, 22:36) *
бред
set_cvar_string("anti_reliable", "1,0 by mazdan"); // Зачем так, не знаю, можно лучше и проще :)

если строка не используется в твоем коде вообще то зачем она нужна?)

не в курсе, судя по декомпиленной версии - так

вообще строка нужна для того что бы "зарегистрировать" квар, вопрос в другом, почему нельзя выставлять значение квара сразу же "1,0 by mazdan" не понятно

Цитата
должно быть register_cvar FCVAR_SERVER поидее

ах да, забыл

Отредактировал: Surf, - 29.8.2012, 18:47
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fred Perry
сообщение 29.8.2012, 18:46
Сообщение #33


Иконка группы

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

offtop
Напишите плагин чтобы блочил команду амхх и пасоны играли у меня КВ на сервер с амхх


Гнилой фашистской нечисти
Загоним пулю в лоб,
Отродью человечества
Сколотим крепкий гроб!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
cs-portal
сообщение 29.8.2012, 18:51
Сообщение #34
Стаж: 16 лет

Сообщений: 8181
Благодарностей: 2709
Полезность: 0

разве команда amxx существует? консольная? есть только amxx pause и тд

и в твоем декомпил образце выходит orpheu error - функция дропклиент не найдена

Отредактировал: cs-portal, - 29.8.2012, 18:55
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 29.8.2012, 18:56
Сообщение #35


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Surf, мне бы столько времени свободного, учитывая, что я сказал что вечером выложу. Ну в целом почти так - смотрите первый пост.
Исходник без логов прилепил, там правда в названии опечатка :D ну ниче, сойдет, я думаю.
Квар так просто дергаю, жалко вам что ли?

Цитата
я к тому, что если клиент не отреагирует на какой либо пакетик, его будет флудить этим пакетом, пока его не кикнет с причиной Reliable channel overflowed либо пока клиент не отреагирует. А если постоянно блокировать пакетик который отвечает за кик игрока (SVC_DISCONNECT) то игрок будет продолжать играть на сервере, т.е сервер поможет ему в этом
Вы мне мозг взорвать хотите?
Если без плагина:
amx_kick -> SV_DropClient -> по вашей логике не принимаем пакет SVC_DISCONNECT -> продолжаем играть
Reliable ch. overflow -> SV_DropClient -> какого черта (по вашей логике опять же) тут должно кикнуть, если мы не принимаем пакет SVC_DISCONNECT?
Чем отличается SV_DropClient от SV_DropClient?

Отредактировал: mazdan, - 29.8.2012, 19:06


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Surf
сообщение 29.8.2012, 19:04
Сообщение #36


Стаж: 14 лет

Сообщений: 1089
Благодарностей: 501
Полезность: 583

Цитата(cs-portal @ 29.8.2012, 22:51) *
и в твоем декомпил образце выходит orpheu error - функция дропклиент не найдена


ну а теперь сравни мой сурс с оригиналом, и покажи разницу в работе))

Цитата
Surf, мне бы столько времени свободного, учитывая, что я сказал что вечером выложу.


Да я особо времени и не затрачивал на самом деле

Цитата
Вы мне мозг взорвать хотите?
Если без плагина:
amx_kick -> SV_DropClient -> по вашей логике не принимаем пакет SVC_DISCONNECT -> продолжаем играть
Reliable ch. overflow -> SV_DropClient -> какого черта (по вашей логике опять же) тут должно кикнуть, если мы не принимаем пакет SVC_DISCONNECT?
Чем отличается SV_DropClient от SV_DropClient?


Вот так:
amx_kick -> SVC_DISCONNECT -> *клиент не принимает и не принимает* -> SVC_DISCONNECT х 100500 раз -> Reliable ch. overflow (дисконнект)

С плагином:
amx_kick -> SVC_DISCONNECT -> *клиент не принимает и не принимает* -> SVC_DISCONNECT х 100500 раз -> Reliable ch. overflow (сервер блокирует, игрок играет)

Отредактировал: Surf, - 29.8.2012, 19:11
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 29.8.2012, 19:14
Сообщение #37


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Функцию из архива на сервер то положить надо, тогда и ошибки не будет

Цитата(Surf @ 29.8.2012, 21:04) *
ну а теперь сравни мой сурс с оригиналом, и покажи разницу в работе))



Да я особо времени и не затрачивал на самом деле



Вот так:
amx_kick -> SVC_DISCONNECT -> *клиент не принимает и не принимает* -> SVC_DISCONNECT х 100500 раз -> Reliable ch. overflow (дисконнект)

С плагином:
amx_kick -> SVC_DISCONNECT -> *клиент не принимает и не принимает* -> SVC_DISCONNECT х 100500 раз -> Reliable ch. overflow (сервер блокирует, игрок играет)

Да блин. Еще раз говорю
Reliable ch. overflow => SV_DropClient в частности
Код
(SV_DropClient(host_client, 0, "Reliable channel overflowed");
amx_kick=> SV_DropClient в частности
Код
SV_DropClient(host_client, 0, "Kicked");

Теперь повторяю вопрос
Чем отличается SV_DropClient от SV_DropClient?

Отредактировал: mazdan, - 29.8.2012, 19:18


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Surf
сообщение 29.8.2012, 19:18
Сообщение #38


Стаж: 14 лет

Сообщений: 1089
Благодарностей: 501
Полезность: 583

Цитата
Теперь повторяю вопрос
Чем отличается SV_DropClient от SV_DropClient?

Отвечаю на вопрос: Ни чем.

Мне кажется мы друг друга не понимаем.

Когда ответ от клиента не приходит (на какой либо "важный" пакетик) то сервер будет посылать и посылать пакетики, пока не придет ответ либо не будет переполнения канала (?), вообщем пока игрока не кикнет с причиной "Reliable ch. overflow". Т.к плагин не дает кикнуть с подобной причиной, то игрока не кикнет, а сервер все будет трудится посылать пакетики.

Все что написано выше, только в теории, но по идее должно выполнятся и на практике

p.s
Даже на SVC_DISCONNECT нужен ответ от клиента

Отредактировал: Surf, - 29.8.2012, 19:20
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 29.8.2012, 19:35
Сообщение #39


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

я рад что был ответ на вопрос.
Так вот если его не кикнет командой kick (она же SV_DropClient) то его и не кикнет (она же SV_DropClient, вызываемая из SV_SendClientMessages)
Ну вообщем на практике попробуйте, интересно же что будет )


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fintok
сообщение 30.8.2012, 12:04
Сообщение #40


Стаж: 16 лет

Сообщений: 756
Благодарностей: 294
Полезность: 638

Цитата(mazdan @ 29.8.2012, 18:16) *
Да ну посмотрите - у вас игроки все вылетели одновременно
Дисконнекты
L 08/29/2012 - 13:20:16: "[Off]*****HULIGAN*****<61><STEAM_0:0:1634612730><TERRORIST>" disconnected
L 08/29/2012 - 13:20:16: "Reg-i-ster<53><STEAM_0:0:824388517><TERRORIST>" disconnected
L 08/29/2012 - 13:20:16: "He}l{Hee cMepTu<34><STEAM_0:0:1584884071><CT>" disconnected
L 08/29/2012 - 13:20:16: "MoLoRi____________________K<18><STEAM_0:0:2073462034><TERRORIST>" disconnected
L 08/29/2012 - 13:20:16: "JESTES PEWIEN ?<57><STEAM_0:0:685293929><CT>" disconnected
L 08/29/2012 - 13:20:16: "IIPuDyMAu' Ce6e CAM<22><STEAM_0:0:1335637031><CT>" disconnected
L 08/29/2012 - 13:20:16: "HOLLYWOOD UNDEAD<45><STEAM_0:1:47886647><CT>" disconnected
L 08/29/2012 - 13:20:16: "lENS04<60><STEAM_0:0:1334838310><TERRORIST>" disconnected
L 08/29/2012 - 13:20:16: "qpaHaT34<42><STEAM_ID_LAN><CT>" disconnected
L 08/29/2012 - 13:20:16: "[dp0rtal.ru]Player<49><STEAM_0:0:851811336><TERRORIST>" disconnected

И только L 08/29/2012 - 13:20:25: "OLOLOWKA<56><STEAM_0:0:1235947572><TERRORIST>" disconnected вышел сам.
OLOLOWKA пинг 5, это наверное вы? может у вас глючит сетевуху\роутер\железо провайдера просто на выходе (сервер дома, вы по лану, так? :) )
Всех кто не по лану выбило, ну как предположение просто.

Почти все правильно, только меня тоже кикнуло с задержкой где 10-20 сек. Я тоже вначале так думал, мб проблемы в свитче или у провайдера. Я отключил плагин, сделал рестарт и все снова заработало, без перезагрузки сервера и свитча. Потом поговорил с другом заходивший по лану из другого дома, его тоже выкинуло. Так что проблема с провайдером и со свитчем сразу же отпадает.

Так же если предположить что проблема все таки с оборудованием была, причем здесь тогда ошибка Reliable channel overflowed ?

Отредактировал: Fintok, - 30.8.2012, 12:07
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
15 страниц V   1 2 3 ... 13 14 »
 
Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: