Глоссарий Cheat Engine

Определения распространённых терминов, с которыми вы столкнётесь при использовании Cheat Engine, форума и вики.

Адрес (Address)

Ячейка в виртуальной памяти процесса, обычно в шестнадцатеричном виде (например, 0x00401234). При поиске значения сканером вы получаете один или несколько адресов. По этому адресу хранится текущее значение (например, здоровье). Адреса могут меняться при перезапуске игры, поэтому используют сканирование указателей для стабильных ссылок.

Указатель (Pointer)

Значение в памяти, которое само является адресом. Указатель «указывает на» другую ячейку. Игры часто хранят адрес объекта игрока в глобальной переменной или в цепочке указателей. Сканирование указателей находит эти цепочки, чтобы чит работал после перезапуска игры.

Скан / First Scan / Next Scan

First Scan: поиск в памяти значений по заданному типу и условию (точное значение, неизвестное, увеличенное и т.д.). Next Scan: среди предыдущих результатов оставить только адреса, удовлетворяющие новому условию. Повтор «изменить значение в игре → Next Scan» сужает список до нужного адреса.

AOB (массив байтов)

Последовательность байтов (часто в hex, например 8B 0D ?? ?? ?? ??), однозначно определяющая место в коде игры. «??» означает «любой байт». AOB используются в скриптах Auto Assembler, чтобы скрипт находил нужное место после обновления игры, пока этот паттерн кода сохраняется.

Заморозка (Freeze)

При «заморозке» адреса в списке Cheat Engine постоянно записывает текущее значение обратно по этому адресу. Если игра пытается уменьшить здоровье, значение сразу восстанавливается. Используется для бесконечного здоровья, патронов и т.д.

Таблица читов (.CT)

Файл, в котором хранятся адреса, скрипты и настройки. Таблицы читов — это XML, их можно открыть в текстовом редакторе. Ими делятся на форуме. Используйте только таблицы из проверенных источников; в них может быть Lua или ассемблер, выполняемый на вашей системе.

Тренажёр (Trainer)

Отдельная программа (часто .exe), собранная из таблицы читов. Позволяет включать читы флажками или горячими клавишами без открытия Cheat Engine. Создаётся с помощью Trainer Maker в CE.

Auto Assembler

Система скриптов в CE, где вы пишете код на x86/x64 ассемблере и директивах (alloc, aobscan, inject и т.д.) для патчинга кода игры. Используется для внедрения кода, замены инструкций и создания устойчивых читов в сочетании с AOB.

Speedhack

Функция CE, меняющая скорость работы игры (например, 0.5x для замедления, 2x для ускорения). Перехватывает API, связанные со временем, чтобы процесс «считал», что время идёт медленнее или быстрее. Только для одиночной игры.

DBVM

Debugger Virtual Machine. Гипервизор, работающий ниже ОС и дающий CE дополнительные возможности (например, ultimap, расширенные точки останова). Необязателен; требуется совместимое оборудование и загрузка через UEFI или аналог.

Подключение (Attach)

Открытие процесса в Cheat Engine для сканирования и изменения его памяти. Процесс выбирается из списка (Файл → Open Process или значок компьютера). Для части процессов нужен запуск CE от имени администратора.

Тип значения (Value Type)

Вид данных при сканировании: целое 1/2/4/8 байт, float, double, строка и т.д. Неверный тип (например, 4 байта при 8 в игре) даёт отсутствие или неверные результаты.

Точка останова (Breakpoint)

Место, где отладчик останавливает выполнение. Точки останова можно ставить на инструкцию (останов при выполнении CPU) или на память (останов при чтении/записи по адресу). Используется для поиска кода, обращающегося к значению.

Mono / .NET

Среды выполнения управляемого кода. Многие игры (например, Unity) используют Mono или .NET. CE может перечислять классы и поля в этих средах, чтобы искать «Player.Health» по имени вместо сырых адресов.

Lua

Встроенный в CE язык скриптов. Используется для автоматизации, своего UI и расширений. Скрипты Lua обращаются к памяти, списку адресов и отладчику через CE Lua API, описанный в вики.

Внедрение кода (Code Injection)

Запись своего ассемблерного кода в целевой процесс (часто в выделенную память) и перенаправление выполнения игры на этот код. Используется для бесконечных патронов, отключения отдачи и т.д. Делается скриптами Auto Assembler.

Процесс (Process)

Запущенный экземпляр программы. К процессу (например, игре) «подключают» CE для чтения и записи его памяти. У каждого процесса своё виртуальное адресное пространство.

Список адресов (Address List)

Список внизу окна CE, куда добавляют найденные адреса. Можно редактировать значения, замораживать их, добавлять описания и скрипты. Сохраняется как часть файла .CT.

Горячая клавиша (Hotkey)

Назначенная комбинация клавиш для адреса или скрипта (например, Ctrl+H для переключения бесконечного здоровья). Задаётся через ПКМ по адресу или в настройках скрипта.

NOP

Ассемблерная «нет операции». Замена инструкции на NOP фактически убирает её. Используется для отключения проверок (например, уменьшения патронов), чтобы игра больше не выполняла этот код.

Ultimap

Функция CE (при загруженном DBVM), трассирующая выполнение и показывающая, какой код выполняется. Для продвинутого анализа. Документация по Ultimap — в вики.

CEServer

Серверный компонент для Linux, Android или других платформ, позволяющий клиенту CE в Windows подключаться к процессу по сети. Для опытных пользователей. См. Загрузки.

Базовый адрес (Base Address)

Начальный адрес модуля (например.exe игры или DLL). Адреса внутри модуля часто задаются как база + смещение. Базовые адреса могут меняться при каждом запуске из-за ASLR; для надёжного поиска кода/данных используют указатели и AOB.

Смещение (Offset)

Фиксированное число, добавляемое к базе или указателю для доступа к полю. Например, «player + 0x10» может быть здоровьем. Смещения не меняются между запусками; база или значение указателя могут меняться. Результаты сканирования указателей показывают цепочку смещений.

Модуль (Module)

Исполняемый файл или библиотека, загруженная в процесс (например, основной .exe игры или .dll). CE может перечислять модули и ограничивать сканирование конкретным модулем. «Основной модуль» — обычно главный исполняемый файл.

Хук (Hook)

Перенаправление выполнения с исходного кода на ваш код (например, замена начала функции переходом на вашу процедуру). CE делает это в Speedhack (перехват временных API) и при внедрении кода. Ваш код может вызывать оригинал и менять поведение.

Разбор данных / структура (Dissect Data / Structure)

Функция CE для отображения памяти как структуры (например, C struct): вы задаёте смещения и типы, CE показывает поля. Помогает при обратной разработке хранения данных игрока, сущностей или массивов.

Тип сканирования (Scan Type)

Условие для скана: Exact value, Unknown initial value, Bigger than, Smaller than, Increased value, Decreased value, Changed value, Unchanged value и т.д. First Scan использует начальное условие; Next Scan сужает по новому.

ASLR

Address Space Layout Randomization (рандомизация раскладки адресного пространства). ОС загружает модули по случайным адресам при каждом запуске, поэтому прямые адреса меняются. Поэтому в скриптах используют сканирование указателей и AOB вместо фиксированных адресов.

Дизассемблер (Disassembler)

Показывает машинный код в виде читаемого ассемблера (x86/x64). В CE используется для просмотра кода игры, поиска инструкций, обращающихся к вашему адресу, и подготовки патчей. Ассемблер позволяет редактировать или добавлять инструкции.

Alloc (выделение)

В Auto Assembler alloc резервирует блок памяти в целевом процессе для вашего кода или данных. Скрипт затем внедряет туда код и перенаправляет игру на его выполнение. Выделенный адрес стабилен в рамках сессии, но не сохраняется после перезапуска без указателя или AOB.

Загрузка