Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 13
  1. #1
    Аватар для Batya_Montes
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.02.2017
    Адрес
    0x
    Сообщений
    163
    Репутация:
    13 ±

    Rakcheat - фильтрация входящих на сервер данных

    Rakcheat

    GitHub


    Описание
    Простая библиотека, защищающая ваш сервер от кривых данных от игрока. Говорить о том, что самп не фильтрует многие данные - думаю не стоит и в итоге при отправке специфичных значений (NaN, inf, -inf) игроков можно крашить, отправлять в загрузку, заставлять самп удалять вашего персонажа (как вариант невидимки от сампа, легально же). Данная библиотека при помощи плагина Pawn.RakNet проверяет каждый пакет синхронизации персонажа и если находит такие невалидные данные - отключает его от сервера. Так же библиотека может выступать в некоторой степени как античит, но список конечно не богат, всего лишь защита от серфинг-невидимки и невалидном угле персонажа (ходьба на голове и прочие подобные читы).

    Библиотека так же может передавать все обнаружения в свой специальный каллбек OnRakcheatFilteredData(playerid, sync, type, subtype), который вы можете объявить и наказывать игроков как хочется вам. Вернув в данном каллбеке 0 это рассинхронизирует пакет данных игрока. Описание параметров будет чуть ниже.

    Константы
    В библиотеке доступно несколько констант которые вы можете использовать и переопределить.

    RAK_DEBUG - включает логирование каждого срабатывания защиты, выводит подробный лог с данными которые шлет игрок (включено по умолчанию).
    RAK_MAX_QUAT_WARNINGS - количество варнингов, которые получит игрок за невалидный угол персонажа, прежде чем будет выгнан с сервера.
    RAK_ENABLED_SHOT - включает защиту от невалидного выстрела

    Параметры каллбека
    playerid - ид игрока, на которого сработала защита
    sync - ид пакета, в котором сработала защита
    type - код сработавшей защиты
    subtype - подкод сработавшей защиты, нужен при предъявлении ложных срабатываний, в другом смысле бесполезен для внимания

    Описание ид пакетов, в которых может сработать защита
    207 - onfoot синхра, игрок находится пешком
    200 - vehicle синхра, игрок находится за рулем авто
    211 - passenger синхра, игрок находится на пассажирском месте в авто
    209 - unoccupied синхра, игрок толкает пустую машину
    210 - trailer синхра, игрок отправляет синхронизацию прицепа
    212 - spectator синхра, игрок наблюдает за кем либо
    206 - bullet синхра, игрок стреляет из огнестрельного оружия
    203 - aim синхра, игрок отправляет синхронизацию своей камеры

    Описание кодов защиты
    1 - невалидная позиция
    2 - невалидные кватерионы
    3 - невалидная скорость
    4 - невалидные оффсеты серфинга
    5 - невалидный ид объекта/машины для серфинга
    6 - невалидные флаги анимации
    7 - невалидное количество хп
    8 - невалидная скорость поезда
    9 - невалидный поворот
    10 - невалидное направление
    11 - невалидная угловая скорость
    12 - невалидные координаты выстрела
    13 - невалидные координаты попадания пули
    14 - невалидные смещения выстрела
    15 - невалидные вектора камеры
    16 - невалидная позиция камеры
    17 - невалидное значение aimz
    18 - невалидный выстрел персонажа

    Скачать актуальную версию вы всегда сможете с моего репозитория на GitHub
    Последний раз редактировалось Batya_Montes; 24.07.2018 в 21:53. Причина: upd 24/07/18
    0x

  2. 5 пользователя(ей) сказали cпасибо:
    DeimoS (12.06.2018) Geebrox (13.06.2018) Kovshevoy (13.06.2018) Nexius_Tailer (12.06.2018) Web (24.06.2018)
  3. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Batya_Montes Посмотреть сообщение
    9 - невалидное ??? (не смогу объяснить данный параметр)
    Всё же стоит хоть как-то попытаться
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  4. #3
    Аватар для Batya_Montes
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.02.2017
    Адрес
    0x
    Сообщений
    163
    Репутация:
    13 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Всё же стоит хоть как-то попытаться
    Ну, очередной из параметров который находится в unoccupied синхре и при подмене его, можно кидать игроков в загрузку.
    0x

  5. #4
    Аватар для Geebrox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    Стоило бы и для контсанты DEBUG присвоить тег RAK, чтобы не путаться в будущем.

  6. #5
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Batya_Montes Посмотреть сообщение
    Ну, очередной из параметров который находится в unoccupied синхре и при подмене его, можно кидать игроков в загрузку.
    Ну просто как людям использовать твой античит, если, в итоге, они не знают что означает тот или иной код? :) Стоит либо словами объяснять, либо примерами наказания, дабы люди понимали что делать с читером в такой ситуации
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  7. #6
    Аватар для Batya_Montes
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.02.2017
    Адрес
    0x
    Сообщений
    163
    Репутация:
    13 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Ну просто как людям использовать твой античит, если, в итоге, они не знают что означает тот или иной код? :) Стоит либо словами объяснять, либо примерами наказания, дабы люди понимали что делать с читером в такой ситуации
    Тут уже дело в описании именно значения 'roll'. Понять что калкор имеет под этим очень сложно, ибо не очень понятно для чего оно здесь используется, но шаря по многочисленными переводчикам и опираясь на свои знания это что-то вроде 'поворота'. На использование оно по сути никак не повлияет, ибо клиент вроде бы сам никогда не шлет невалидные данные ;)

    - - - Добавлено - - -

    Цитата Сообщение от Geebrox Посмотреть сообщение
    Стоило бы и для контсанты DEBUG присвоить тег RAK, чтобы не путаться в будущем.
    Да, добавлю везде тег где его не хватает ;)
    0x

  8. #7
    Аватар для Batya_Montes
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.02.2017
    Адрес
    0x
    Сообщений
    163
    Репутация:
    13 ±
    Обновление системы
    - Добавлен тег RAK там где его не хватало
    - Добавлена поддержка static_enum и static_const
    - Добавлена защита от невалидного выстрела. По умолчанию отключена, ибо протестировать на онлайне не предоставляется возможности (включается константой RAK_ENABLED_SHOT)
    0x

  9. #8
    Аватар для Batya_Montes
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.02.2017
    Адрес
    0x
    Сообщений
    163
    Репутация:
    13 ±
    Обновление
    - Переписан полностью алгоритм проверки на серфинг невидимку
    0x

  10. #9
    Аватар для Batya_Montes
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.02.2017
    Адрес
    0x
    Сообщений
    163
    Репутация:
    13 ±
    Обновление
    - Глобальное обновление системы
    - Поправлен античит на серфинг по объекту (замена isobjectvalid на getobjectmodel)
    - Почти каждое значение проверяемое на нан и инфинити получило доп. проверки на минимально и максимально возможное
    - Закрыт новый вид крашера и возможно будущие версии всех крашеров
    - Переписана защита синхронизации выстрела (bullet), не вышедшей обновы

    * Некоторые минимально и максимально возможные значения занижены или завышены, ибо значения были получены экспериментальным путем и могут зависеть от лагов/пинга, на момент теста ложных не выявлено
    0x

  11. #10
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от Batya_Montes Посмотреть сообщение
    Закрыт новый вид крашера и возможно будущие версии всех крашеров
    Очень информативно (нет).

    Но серьёзно, не ленитесь объяснять подробности, здесь они точно не будут лишними. Вам на подобное уже не в первый раз в этой теме указывают.

    Также название коллбэка "OnRakcheatFilteredData" расходится со стилем именования стандартных коллбэков - к примеру, обработчик подключения игрока называется "OnPlayerConnect", а не "OnPlayerConnected".
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •