Привет! Если вы читаете это - Вы еще не зарегистрированы. Это займет не больше минуты. Нажмите здесь, чтобы пройти регистрацию в несколько простых шагов, чтобы пользоваться всеми возможностями нашего форума. Обратите внимание, запрещены непристойные, матерные, бессмысленные (цифры, случайный набор букв) ники. Удачи!

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

Показано с 1 по 10 из 25

  1. #1
    Пользователь

    Аватар для 0xFSO

    Статус: Оффлайн
    Регистрация:07.02.2018
    Сообщений:78
    Репутация:44 [+/-] 

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

    Rakcheat

    GitHub


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

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

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

    RAK_DEBUG - включает логирование каждого срабатывания защиты, выводит подробный лог с данными которые шлет игрок (включено по умолчанию).
    RAK_MAX_QUAT_WARNINGS - количество варнингов, которые получит игрок за невалидный угол персонажа, прежде чем будет выгнан с сервера.
    RAK_ADDITIONAL_CHECKS - включает доп. проверки на NaN, inf, -inf основанные на strcmp, но так как это все дело находится под очень частым вызовом, то отключено по умолчанию и не советуется к использованию.
    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
  2. 10 пользователей сказали cпасибо 0xFSO за это полезное сообщение:

    execution (14.06.2018), James_Parker (14.06.2018), Nexius_Tailer (15.06.2018), Pa[DoN]oK (13.06.2018), Salery (30.06.2018), Syme (15.06.2018), Valera_Kovshikov (13.06.2018), vasya092 (07.07.2018), Vlad_Strong (20.06.2018), whale (14.06.2018)

  3. #2
    Пользователь

    Аватар для execution

    Статус: Оффлайн
    Регистрация:23.06.2017
    Сообщений:73
    Репутация:9 [+/-] 
    А что по нагрузке?
  4. #3
    Пользователь

    Аватар для 0xFSO

    Статус: Оффлайн
    Регистрация:07.02.2018
    Сообщений:78
    Репутация:44 [+/-] 
    А что по нагрузке?
    Нагрузка конечно будет, то не думаю что прям сильно большая. Ибо все по максимуму оптимизировано.
    Единственное место где может быть огромная нагрузка - включение доп. проверок основанных на strcmp, ибо там идет еще создание переменной и использование format.
    Ну а вообще, ты можешь сам сделать замеры на своем сервере и с профайлером.
  5. #4
    Пользователь

    Аватар для Pulse1997

    Статус: Оффлайн
    Регистрация:10.08.2015
    Сообщений:21
    Репутация:5 [+/-] 
    можно и так сделать, без native. ловит NaN и (()(((),,)((
    PHP код:
    static CheckValidityData(Float:data)
    {
        if(
    _:data != _:data) return 0;
        return 
    1;

  6. #5
    Пользователь

    Аватар для 0xFSO

    Статус: Оффлайн
    Регистрация:07.02.2018
    Сообщений:78
    Репутация:44 [+/-] 
    можно и так сделать, без native. ловит NaN и (()(((),,)((
    PHP код:
    static CheckValidityData(Float:data)
    {
        if(
    _:data != _:data) return 0;
        return 
    1;

    Не думаю что это словит бесконечность и минус бесконечность, ибо она может быть равна самому себе.
  7. #6
    Пользователь

    Аватар для 0xFSO

    Статус: Оффлайн
    Регистрация:07.02.2018
    Сообщений:78
    Репутация:44 [+/-] 
    Обновление
    - Переписан полностью алгоритм проверки на серфинг невидимку
  8. #7
    Зарегистрированый

    Аватар для IvanIvanov738

    Статус: Оффлайн
    Регистрация:20.06.2018
    Сообщений:1
    Репутация:0 [+/-] 
    3 - невалидная скорость
    Это может работать как защита от спидхака для авто?
  9. #8
    Пользователь

    Аватар для shapegaz

    Статус: Оффлайн
    Регистрация:27.11.2016
    Сообщений:105
    Репутация:23 [+/-] 
    Это может работать как защита от спидхака для авто?
    Не может.
  10. #9
    Пользователь

    Аватар для 0xFSO

    Статус: Оффлайн
    Регистрация:07.02.2018
    Сообщений:78
    Репутация:44 [+/-] 
    Это может работать как защита от спидхака для авто?
    Не может, данная библиотека не является по своей сути античитом, хоть на это и смахивает. Она фильтрует невалидные данные игрока, которые приводят к различным крашам, выкидыванием игроков в загрузку и прочего. По сути это должно было быть дефолту в сампе, но калкору видимо лень это все писать было.
  11. #10
    Пользователь

    Аватар для Danil1998

    Статус: Оффлайн
    Регистрация:02.10.2012
    Сообщений:1,169
    Репутация:195 [+/-] 
    Не думаю что это словит бесконечность и минус бесконечность, ибо она может быть равна самому себе.
    Ну вообще NaN неравен самому себе.

Страница 1 из 3 123 Последняя
  • К странице:

Ваши права

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