1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  1. izzatillo

    izzatillo Пользователь

    Регистрация:
    8 июн 2017
    Сообщения:
    127
    Симпатии:
    45
    Пол:
    Мужской
    VKcom:
    musoxonov
    Telegram:
    @musaxonov
    Rechecker это Metamod plugin, дающий возможность проверять клиентские файлы по их md5 хэшу.
    Возможное применение:

    • Обнаружение читерских библиотек в директории игры
    • Обнаружение отсутствия обязательных для игры файлов
    • Обнаружение запрещенных моделей игроков, либо создание белого списка разрешенных

    Автор: s1lent

    Требования:
    • Движок ReHLDS 937 или новее
    • MetaMod 1.20(p) или новее
    Благодарности:
    • dreamstalker за проект ReHLDS
    • Asmodai за консультацию и помощь в реализации оптимизации.
    • Neygomon за проведение тестов.
    Команды:
    rch_log - 0/1/2

    • 0 - Выключить.
    • 1 - Обычный лог, только обнаружение.
    • 2 - Детальный лог.
    Установка:
    Распаковываем rechecker_X_X.zip в папку <gamedir> вашей игры.
    Добавляем библиотеку rechecker_mm_i386.so или rechecker_mm.dll в зависимости от используемой ОС в конфиг MetaMod.
    Для этого открываем <gamedir>/addons/metamod/plugins.ini (если его нет, создаем сами) и пишем:
    Linux:

    PHP:
    linux addons/rechecker/rechecker_mm_i386.so
    Windows:

    PHP:
    win32 addons\rechecker\rechecker_mm.dll

    • Из извлеченного архива rechecker_X_X.zip будет присутствовать файл resources.ini который должен лежать рядом с библиотекой rechecker_mm.dll или rechecker_mm_i386.so
    Настройка:
    PHP:
    Описание флагов:
    UNKNOWN Если вам неизвестен хэшпри таком флаге будет искать файл с любым хэшем.
    IGNORE Это флаг который помечает данный файл с хэшем в игнорируемый список.
    MISSING Обнаружение отсутствие файла у клиента.

    Если 2 файла с указанным хэшем и с флагом IGNORE были обнаружены,
    то для UNKNOWN они будут проигнорированы

    "../qwerty.dll" 099b3b06 IGNORE
    "../qwerty.dll" f284f878 IGNORE
    "../qwerty.dll" UNKNOWN "addip 1440 [ip]"


    BREAK - Этот флаг выходит из всех проверок если файл был обнаружен или наоборот отсутствует.

    Ниже предоставлен примерпри обнаружении файла antichet.dll будет выход из цикла,
    дальнейшие проверки выполняться не будут.

    "../anticheat.dll" bdc52384 BREAK
    "../opengl32.dll" 0ee4e274 "addip 1440 [ip]"
    Разбор лога:
    exphash - `expected hashхэш который ожидает получить
    got 
    хэш который пришел от клиента
    typeFind 
    тип обнаружения
    exists 
    сравнение хэша `exphash == got`
    missing проверка на отсутствие файла `prevhash == got`
    ignore файлы помеченные в игнор
    hash_any 
    проверка на любой хэш `prevhash != got`


    prevhash хэш предыдущего файла prevfile
    prevfile 
    предыдущий файл
    md5hex 
    хэш как указан в resources.iniтоже самое что и exphash разница только в порядке байтов от младшего к старшему
    findathash 
    встречался ли ранее такой хэш во всех проверяемых файлов
    Форматирование строк
    :
    [
    name] - Имя игрока
    [ip] - IP Адрес игрока
    [userid] - идентификатор игрока
    [steamid] - Steamid игрока

    [file_name] - имя проверяемого файла
    [file_hash] - хэш проверяемого файла который вернул клиент
    (Вниманиеэтот хэш big-endianесли вы хотите получить хеш для последующего применения в resources.ini то используйте file_md5hash)
    [
    file_md5hash] - хэш проверяемого файла который вернул клиент

    Полезные примечания
    :
    Причину наказания или оповещения можно заключать в одинарные кавычки"amx_kick [userid] 'Opengl32 Detected'"
    md5 хэш c8005c526355d8015d462dc7f4ddb159 достаточно иметь первые 4 байта (c8005c52)
     

    Вложения:

    Последнее редактирование: 2 июл 2017