Как работают читы в играх

Виды читов и применяемые тактики

Существуют разные виды читов. Можно разделить их на несколько групп.

  • External — внешние читы, которые работают в отдельном процессе. Если же мы скроем наш external-чит, загрузив его в память другого процесса, он превратится в hidden external.
  • Internal — внутренние читы, которые встраиваются в процесс самой игры при помощи инжектора. После загрузки в память игры в отдельном потоке вызывается точка входа чита.
  • Pixelscan — вид читов, который использует картинку с экрана и паттерны расположения пикселей, чтобы получить необходимую информацию от игры.
  • Network proxy — читы, которые используют сетевые прокси, те, в свою очередь, перехватывают трафик клиента и сервера, получая или изменяя необходимую информацию.

Есть три основные тактики модификации поведения игры.

  1. Изменение памяти игры. API операционной системы используется для поиска и изменения участков памяти, содержащих нужную нам информацию (например, жизни, патроны).
  2. Симуляция действий игрока: приложение повторяет действия игрока, нажимая мышкой в заранее указанных местах.
  3. Перехват трафика игры. Между игрой и сервером встает чит. Он перехватывает данные, собирая или изменяя информацию, чтобы обмануть клиент или сервер.

Редактирование памяти

Редактирование памяти работает так же, как… ну, скажем, ArtMoney, или Cheat Engine. Только всё происходит автоматизированно. Адреса в памяти либо заранее вытащены из игры и записаны в чит (в таком случае записаны так называемые оффсеты – адреса относительно адреса процесса игры, т.е. они прибавляются к адресу процесса), либо ищутся по паттернам во время запуска чита. Адресов могут быть сотни. У CS:GO их около 130.

Влиять таким образом можно на многое. К примеру:

  • Получать координаты игроков
  • Влиять на устройства ввода
  • Влиять на передвижение и поворот
  • Редактировать параметры, имеющиеся в движке

Т.е. примерный минимум, чтобы испортить всем игру. В CS:GO при редактировании памяти возможны wallhack (посредством включения свечения игроков – пункт про редактирование параметров), aimbot (благодаря влиянию на устройства ввода и повороту игрока), антиотдача. И… всё.

Пример: если записать какое-нибудь число по адресу m_iFOV, то можно менять угол обзора. А по адресу m_iHealth можно читать здоровье игрока. Любого. Оффсеты давно неактуальны.

Минусы такого метода:

  • Сделать что-то более сложное нельзя. По сути, Вы максимум можете управлять цифрами, редактируя текущее состояние. Вы не можете создать что-то новое (на самом деле можно, но это очень сложно).
  • Не всё можно редактировать. Иногда нельзя даже проверить видимость игрока.
  • Для каждой версии игры нужно искать свои адреса.
  • Скорость работы оставляет желать лучшего.

Но как же те ублюдки, которые вечно смотрят в пол и моментально раздают хедшоты?

Инъекция DLL

А вот тут уже используется инъекция DLL в процесс игры. Она уже гораздо более гибкая, чем редактирование памяти, за счёт вызова внутриигровых функций. Редакторы памяти ничего не знают о функциях. Никакого взлома не требуется – в Windows есть всё нужное для этого. По ссылке есть пример кода простейшего инжектора.

Если к движку есть SDK (комплект для разработки), то разработка читов становится ещё проще, т.к. всё задокументировано. Что можно делать таким образом:

  • Всё

Всё, что позволяет движок. Опять же, разберём на примере CS:GO. То, что читер смотрит в пол или крутится – видно только Вам, как наблюдателю. На самом же деле, на его стороне создаётся копия камеры и рук с оружием, и он видит то же, что и обычный игрок. Из чита можно вызывать все функции движка Source. По той же причине в чат игры после убийства прилетают сообщения, вроде “pwnd by gaysense”. И по той же причине простреливаются те места, которые, казалось бы, ну никак не должны – читу достаточно дёрнуть функцию движка, чтобы узнать свойства объекта между игроком и читером.

Обход античитов

  • Читы, использующие редактирование памяти, быстрее всего обнаруживаются античитами, из-за использования функций Windows чтения и записи в память.
  • Читы, которые требуют инъекции DLL, обнаруживаются по сигнатуре. С точки зрения игры они не делают ничего незаконного, т.к. они не вторгаются в процесс извне.

Для оттягивания момента обнаружения последних, часто используют протекторы, такие как Themida, VMProtect (да-да, тот самый, и конечно же крякнутый), SafeEngine и т.д. Протектор обфусцирует (запутывает) код и меняет сигнатуру чита. Некоторые протекторы используют виртуальную машину. Выглядит это с точки зрения антивирусов весьма печально.

Но тут, скорее, срабатывание по факту неизвестности. Результаты разнятся: от просто malicious (вредоносный, но что делает – неизвестно) до adware (рекламный мусор, чем оно точно не является). 

Продвинутые читы могут скрывать присутствие своих процессов. Опять же, благодаря встроенным функциям в Windows.

Leave a comment

Discord

Наш дискорд сервер

Telegram

Мы в Telegram

AWKA.IO © 2012-2025 Все права защищены. Пользовательское соглашение  |  Контакты  |  О нас | Отказ от ответственности | Полное или частичное копирование материалов сайта без согласования с редакцией запрещено.|

Мы используем cookie, чтобы собирать статистику и делать контент более интересным. Также cookie используются для отображения более релевантной рекламы. Вы можете прочитать подробнее о cookie-файлах и изменить настройки вашего браузера.


Перейти к верхней панели