Cheat Engine — программа для модификации игр¶
Cheat Engine (CE) — бесплатное программное обеспечение с открытым исходным кодом для анализа и модификации процессов оперативной памяти компьютера, предназначенное в первую очередь для работы с одиночными компьютерными играми. Программа позволяет находить значения в памяти запущенного процесса, изменять их и создавать так называемые «чит-коды» — наборы адресов и значений, сохраняемые в файлы с расширением .CT. Cheat Engine распространяется по лицензии GNU GPL и поддерживается разработчиком Дармом Андерсеном (Dark Byte).
¶Основные возможности
Cheat Engine выполняет ряд функций, связанных с прямым доступом к памяти процессов:
- поиск и изменение значений в оперативной памяти процесса (целые числа, числа с плавающей точкой, строки, двоичные данные);
- создание и редактирование таблиц адресов (cheat tables) с описанием найденных значений;
- отслеживание указателей (pointer scan) для поиска многоуровневых цепочек адресов;
- модификация скорости процесса (speedhack);
- включение и выключение бесконечных жизней, патронов и других игровых параметров через изменение памяти;
- дамп памяти процесса и поиск скрытых объектов;
- подключение отладчика к процессу, установка точек останова;
- сканирование модулей и поиск уязвимостей в памяти.
Программа работает на операционных системах Windows (основная платформа) и имеет экспериментальную поддержку Linux через слой совместимости Wine. Для 64-битных систем требуется отдельная версия.
¶Интерфейс и основные элементы
При запуске Cheat Engine открывается главное окно с панелью инструментов. Основные элементы интерфейса:
| Элемент | Назначение |
|---|---|
| Кнопка с изображением компьютера | Открытие списка запущенных процессов для выбора целевого приложения |
| Поле «Value» | Ввод искомого значения |
| «Value Type» | Выбор типа данных (4 байта, 2 байта, 1 байт, float, double, string, array of byte) |
| «Scan Type» | Тип сканирования (Exact Value, Bigger than, Smaller than, Unknown initial value) |
| «First Scan» | Первичное сканирование памяти |
| «Next Scan» | Уточняющее сканирование для сокращения списка найденных адресов |
| Таблица слева | Список найденных адресов с текущими значениями |
| Таблица справа (address list) | Сохранённые адреса для постоянного мониторинга и редактирования |
¶Пошаговое использование
¶Выбор процесса
После запуска игры или иного приложения нажимается кнопка с изображением компьютера в верхнем левом углу Cheat Engine. В открывшемся списке выбирается процесс нужной программы (например, game.exe). После нажатия «Open» программа подключается к выбранному процессу.
¶Первичное сканирование
В поле «Value» вводится известное значение игрового параметра — например, количество золота, здоровье, патроны. Выбирается тип данных: для большинства целых чисел подходит «4 Bytes», для дробных значений — «Float». Нажимается «First Scan». В левой таблице отображается список адресов памяти, содержащих указанное значение.
¶Уточнение списка
Игровой параметр изменяется в игре (например, покупается предмет за золото, расходуются патроны). В Cheat Engine вводится новое значение и нажимается «Next Scan». Из списка исключаются адреса, значения которых не изменились соответствующим образом. Процедура повторяется до тех пор, пока не останется один-несколько адресов.
¶Изменение значений
Найденный адрес двойным щелчком добавляется в правую таблицу (address list). Значение можно изменить, щёлкнув по нему, и зафиксировать, установив флажок «Active» — в этом случае программа будет постоянно перезаписывать значение в памяти, не давая игре его изменить.
¶Создание таблицы
Файл с расширением .CT сохраняется через меню «File → Save». Таблица содержит адреса, описания и настройки изменений. Такие таблицы распространяются в интернете и позволяют другим пользователям применять готовые модификации без повторного поиска адресов.
¶Указатели и многоуровневые адреса
В большинстве современных игр адреса игровых значений не являются постоянными и пересоздаются при каждом запуске. Для решения этой проблемы используется механизм указателей: в памяти процесса располагается цепочка адресов, ведущая к искомому значению. Cheat Engine позволяет находить такие цепочки с помощью функции «Pointer Scan» и сохранять их в таблице в виде многоуровневых записей вида [[[base+offset]+offset]+offset].
¶Speedhack
Функция Speedhack замедляет или ускоряет выполнение процесса, перехватывая системные вызовы времени. Включается одноимённым флажком в главном окне, после чего задаётся коэффициент скорости. На практике чаще используется для замедления игр с высокой скоростью протекания событий.
¶Правовой и этический статус
Cheat Engine сам по себе является нейтральным инструментом анализа памяти и может использоваться в легитимных целях: отладка собственных программ, исследование работы приложений, тестирование безопасности. Разработчик неоднократно подчёркивал, что программа предназначена для одиночных игр. Использование Cheat Engine в многопользовательских онлайн-играх нарушает условия обслуживания большинства игровых платформ и может привести к блокировке аккаунта. Ряд антивирусных программ детектирует Cheat Engine как потенциально нежелательное программное обеспечение (PUP), что связано с его возможностями по внедрению кода в процессы.
¶История
Cheat Engine впервые появилась в 2000-х годах как проект энтузиаста, работающего под псевдонимом Dark Byte. Программа развивалась как бесплатная альтернатива коммерческим чит-трейнерам. С течением времени добавлялись новые функции: поддержка 64-битных систем, дебаггер, скриптовый язык на основе Auto Assembler для создания сложных модификаций. На сегодняшний день Cheat Engine является одним из наиболее известных инструментов подобного рода в русскоязычном и мировом интернет-сообществе.
