Возможности Cheat Engine
Полный обзор возможностей: от базового сканирования памяти до продвинутых функций уровня ядра и скриптинга.
Сканер памяти
Ядро CE — сканер памяти. Поиск по памяти процесса по введённому значению: точное значение, неизвестное начальное, уменьшилось/увеличилось и другие типы. После первого сканирования меняете значение в игре и запускаете «Повторное сканирование». В результате остаются один или несколько адресов.
Поддерживаются типы: 1–8 байт целые, float, double, строки. Групповое сканирование и пользовательские скрипты Lua. Результаты добавляются в список адресов: заморозка, ручное изменение, горячие клавиши.
Дополнительно: сканирование областей памяти, отладчик при обращении к адресу, сканирование указателей для работы после перезапуска игры.
Отладчик
Полноценный отладчик: точки останова по инструкциям и по доступу к памяти (чтение/запись). Просмотр регистров, стека и памяти. Поддержка 32/64 бит и ядерная отладка с DBVM.
Пошаговое выполнение, «найти что пишет/читает этот адрес», трассировка — для поиска инструкции, обновляющей здоровье/патроны/деньги, с последующей заменой или внедрением кода.
Окно отладчика: дизассемблер, редактирование (ассемблер), новые скрипты (Auto Assembler), лог трассировки.
Дизассемблер и ассемблер
Дизассемблер показывает машинный код в виде ассемблера (x86/x64). Навигация по адресам, переходы и вызовы. Найдя код, записывающий в нужное значение, можно заменить его своими инструкциями.
Auto Assembler — слой скриптов: ассемблер с директивами alloc, внедрение кода, поиск AOB (массив байт). CE выделяет память, находит байты и патчит игру. Есть шаблоны (бесконечное здоровье, без отдачи и т.д.).
Ускорение (Speedhack)
Изменение скорости процесса: замедление (сложные моменты, анализ) или ускорение (гринд в одиночной игре). Регулировка ползунком или множителем. Реализовано через перехват API времени (GetTickCount, QueryPerformanceCounter).
Только для однопользовательской игры. В онлайн-играх — рассинхрон или детект, не поддерживается.
Создание тренажёров
Найдя адреса и при необходимости скрипты Auto Assembler, сохраняете их в таблицу (.CT). Конструктор тренажёров создаёт отдельный .exe с окном (галочки, горячие клавиши), чтобы пользователям не нужны были CE и загрузка таблицы.
Тренажёры часто распространяются на форуме. Скачивайте только из доверенных источников; .CT — XML, может содержать Lua и ассемблер.
Скрипты Lua
Встроенная поддержка Lua: автоматизация сканирования, изменение интерфейса, формы и диалоги, работа со списком адресов и памятью. Много расширений на форуме на Lua. API: чтение/запись памяти, выделение, перечисление модулей, вызов отладчика из скрипта.
Lua используется для авто-подключения к процессу, пользовательских типов сканирования и сложных тренажёров. Основы Lua и документация CE Lua в вики.
DBVM (Debugger Virtual Machine)
DBVM — гипервизор под ОС, расширяет набор инструкций CPU для доступа usermode-программ к операциям уровня ядра. Более мощная отладка и доступ к памяти, особенно на 64-бит Windows.
С загруженным DBVM: ultimap (трассировка), улучшенные точки останова, доступ к памяти на уровне ядра. Нужна совместимая CPU и загрузка через загрузчик DBVM (UEFI). ПКМ по логотипу CE → «О программе» — поддержка и статус загрузки.
160-битный ключ для защиты. Опционально; большинство пользуется CE без DBVM.
Mono и .NET
Многие игры на Unity (Mono) или .NET. CE перечисляет типы, классы и поля. Mono Dissector и .NET Data Collector — просмотр объектной модели в памяти и поиск полей по имени (например Player.health, GameManager.gold). Добавление в список адресов или использование в скриптах.
Lua и Mono API можно комбинировать для автоматического поиска и отслеживания классов и экземпляров.
Сканирование указателей
Адреса в играх часто меняются при перезапуске (ASLR, динамическое выделение). Указатель — адрес, содержащий другой адрес, в цепочке до нужного значения. Сканирование указателей находит цепочки, остающиеся валидными после перезапуска. Сохраняете указатель в таблице — чит работает при каждом запуске.
Сканирование может быть долгим. Фильтры «должен быть читаем» и ограничение глубины уменьшают ложные срабатывания.
Прочие инструменты
- Просмотр памяти: просмотр и правка памяти в hex, поиск байт, строк, AOB.
- Структуры данных: определение структур и наложение на память.
- Direct 3D: инспекция и изменение состояния DirectX в некоторых играх.
- Символы: загрузка PDB для подписей в дизассемблере.
- Список процессов: подключение к любому процессу (с правами), фильтр по имени или PID.
Настройки сканирования и производительность
Много опций скорости и точности: ограничение областей (только основной модуль или доступные для записи), «Быстрое сканирование», число потоков. Для «Неизвестное начальное значение» на больших процессах ограничение диапазона ускоряет. Список адресов поддерживает тысячи записей; для результатов сканирования указателей используйте фильтры перед повторным сканированием. Практика — на странице Обучение.
Плагины и расширения
Поддержка плагинов (DLL). На форуме — раздел плагинов. Скрипты Lua тоже могут быть расширениями. Используйте только доверенные источники; плагины и скрипты выполняются с теми же правами, что и CE. Вики документирует API плагинов и Lua.
Для пошагового обучения начните с обучения и встроенного урока CE (меню «Пуск»). Вики Cheat Engine — подробно по каждой возможности.