Проверка hl.exe через правила YARA

Сообщения
4
Реакции
0
Проверка hl.exe через правила YARA
В современном игровом мире борьба с читерством является важной задачей. Одним из методов обнаружения вредоносного кода является использование правил YARA для анализа исполняемых файлов и загруженных в память модулей. В данной статье рассмотрим, как с помощью YARA можно проверить процесс hl.exe на наличие подозрительных библиотек и модификаций в памяти.

Основные этапы проверки
  1. Поиск процесса hl.exe
    Для начала необходимо найти идентификатор процесса hl.exe.
  2. Код:
    function FindProcessID(const ProcessName: string): DWORD;
    begin
    // Реализация поиска PID процесса по имени
    end;

  3. Данный метод позволяет получить PID целевого процесса, если он запущен.
  4. Загрузка правил YARA
    YARA позволяет загружать заранее подготовленные сигнатуры вредоносного кода.
  5. Код:
    function LoadYaraRules(const RuleFile: string; var Rules: Pointer): Boolean;
    begin
    // Загрузка и компиляция YARA-правил
    end;

  6. Функция читает правила из файла и компилирует их для последующего использования.
  7. Проверка загруженных DLL
    Чтобы выявить подозрительные модули в процессе, используется метод:
  8. Код:
    function CheckLoadedDLLs(ProcessID: DWORD; Rules: Pointer): Boolean;
    begin
    // Проверка загруженных модулей процесса
    end;

  9. Данный метод сканирует загруженные библиотеки и проверяет их соответствие правилам YARA.
  10. Анализ памяти процесса
    Помимо проверки загруженных модулей, важным этапом является анализ памяти.
  11. Код:
    function FindInjectedDLLs(ProcessID: DWORD; Rules: Pointer): Boolean;
    begin
    // Анализ памяти процесса на предмет внедренных библиотек
    end;

  12. Эта функция выделяет подозрительные участки памяти, сохраняет их во временные файлы и анализирует с помощью YARA.
  13. Отправка данных на сервер
    В случае обнаружения нарушения информация передается на сервер.
  14. Код:
    procedure SendToServer(const Message: string);
    begin
    // Отправка информации на удаленный сервер
    end;

  15. Это позволяет централизованно отслеживать попытки использования читов.
Пример контроллера на Nest.js
Код:
import { Body, Controller, Post } from '@nestjs/common';

@Controller('cheat-detected')
export class CheatDetectedController {
@Post()
handleCheatDetected(@Body() body: { message: string }) {
console.log(body.message);
// Здесь можно добавить логику для обработки обнаруженных читов
return { status: 'received', message: body.message };
  }
}
Консоль сервера
1739038982832.png

Пример правил YARA
Код:
rule metla_hack {
   meta:
    description = " - file metla_hack.asi"
    author = "yarGen Rule Generator"
    reference = "https://github.com/Neo23x0/yarGen"
    date = "2025-02-06"
    strings:
    $s1 = "33333333333333333333333333333333333333333333333333" ascii
    $s2 = "jjjjjjjjjjjjjjjjjjjk" fullword ascii
    $s3 = "FPUMaskValue" fullword ascii
   condition:
    uint16(0) == 0x5a4d and filesize < 200KB and
    2 of them
}
Заключение
Использование YARA для проверки hl.exe на наличие вредоносного кода — это эффективный метод анализа, позволяющий обнаруживать несанкционированные модификации процесса. Подход с анализом загруженных DLL и изучением памяти делает систему более надежной и защищенной от читерства. В архиве приложил исходники
 

Download all Attachments

Garey

ninjaCow
Сообщения
451
Реакции
1,111
Помог
11 раз(а)
В чем смысл статьи? ChatGPT любой может использовать.
 
  • Нравится
Реакции: DEVV
Сообщения
4
Реакции
0
Garey, да, пришлось поковыряться с подключением yara к delphi с помощью gpt, не скрываю. Первое применение какое вижу, если собрать большую базу читов то в спорных моментах можно админам попросить игрока запускать данную прогу на компьютере и просматривать используются ли читы или нет, все таки загрузить чит то можно, вот выгрузить его из памяти достаточно не просто, если не закрыть игру.
Ну и второе, можно доковырять с помощью модулей например https://dev-cs.ru/resources/1314/ допилить связь между античитом => сервер nest или что то любое, что душе угодно => amxx плагин на сервере
 

Garey

ninjaCow
Сообщения
451
Реакции
1,111
Помог
11 раз(а)
wowq4, Это все понятно, но полезной нагрузки от статьи никакой, несказанно что такое YARA и функции пустышки в статье такое себе...

karaulov Насколько знаю уже разрабатывает аналог WarGods, и в целом если разрабатывать клиентский античит по типу "сканера" то он должен связываться с неким API античита а не серверным модулем (т.к. любой может поставить серверный модуль и найти как обойти античит).

+ Современные читы почти все выгружаются из памяти и не оставляют следов.
 
Сообщения
1,744
Реакции
800
Помог
5 раз(а)
Garey, ну да в новом сканере пк все через сайт связано будет, и репорты тоже по типу как на варгодс будут хранится на сайте, не знаю как скоро всем будет доступно, сейчас косяки исправляем перед запуском бета теста
 
Сообщения
4
Реакции
0
karaulov, я просто для примера выложил, даже не знал про этот проект пока мне не сказали
 

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

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу