Тренер (игры)
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти сообщения )
|
Игровые тренажеры — это программы, созданные для изменения памяти компьютерной игры, тем самым изменяя ее поведение с использованием адресов и значений, чтобы обеспечить возможность мошенничества. Он может «заморозить» адрес памяти, не позволяя игре уменьшать или изменять информацию, хранящуюся по этому адресу памяти (например, счетчик здоровья, счетчик боеприпасов и т. д.), или манипулировать данными по указанным адресам памяти в соответствии с потребностями мошенника . в игре.
История
[ редактировать ]В 1980-х и 1990-х годах тренеры, как правило, интегрировались непосредственно в реальную игру путем взлома групп . Когда игра запускалась впервые, первым загружался трейнер, спрашивавший игрока, хочет ли он жульничать и какие читы он хотел бы включить. Затем код перейдет к реальной игре. Эти встроенные тренажеры сопровождались вводными сведениями о группах, выпускающих игру, и тренер часто использовался для демонстрации навыков демо- кодирования группы взлома. [ 1 ] Некоторые из этих групп сегодня полностью сосредоточены на своей демосцене . [ 2 ] В списках выпусков и вступлениях группы взломщиков обученные игры помечались одним или несколькими знаками плюса после них, по одному на каждый вариант или чит в трейнере, например: «Mega Krew представляет: Ms. Astro Chicken++ » . Современные трейнеры добавляют к названию одиночный + или пишут «плюс» и цифру, так как многие из них имеют несколько функций. Используемое число представляет количество модификаций, доступных тренеру, например «бесконечное здоровье» или «убийство одним ударом». Еще одним отличием является указание версии игры или источника цифровой загрузки игры. Например: «Hitman: Absolution Steam +11 трейнер», [ 3 ] «FEAR 3 v 1.3 PLUS 9 Трейнер» и т. д. [ 4 ] [ 5 ]
Современные трейнеры также поставляются в виде отдельно загружаемых программ. Вместо того, чтобы напрямую изменять программу игры, они изменяют значения, хранящиеся в памяти. Фактически, это стало настолько распространенным, что современные тренеры по определению лишь модифицируют память; модификация исполняемого файла игры не одобряется, и такие программы считаются не настоящими тренажерами, а патчами.
При объектно-ориентированном программировании памяти объекты часто хранятся динамически в куче , но современные операционные системы используют рандомизацию расположения адресного пространства (ASLR) . Следовательно, единственный способ изменить такую память воспроизводимым образом — получить информацию изнутри игрового процесса. Для этого требуются обратного проектирования методы API , такие как перехват malloc() и free() , внедрение кода или поиск статических указателей доступа. Тренер становится активным, когда объект был выделен, и снова деактивируется, когда объект освобождается.
Современные операционные системы также поставляются с позиционно-независимыми исполняемыми файлами (PIE) для обеспечения безопасности. Вместе с ASLR двоичные файлы загружаются в другой адрес виртуальной памяти при каждом выполнении кода. Это усложняет надежную модификацию значений статической памяти. Адрес загрузки необходимо определить и вычесть из найденного адреса памяти, чтобы получить статическое смещение памяти. Это смещение часто совпадает с адресом статической переменной в двоичном файле PIE. Например, для Linux инструмент Scanmem таким образом поддерживает PIE. [ 6 ] Для настроенного смещения памяти игровой тренер также определяет адрес загрузки и добавляет его обратно во время выполнения. Тот же метод можно использовать для динамических библиотек и .
Статические указатели доступа и перехват API
[ редактировать ]Поиск и отслеживание указателей доступа, обратных указателям в статической памяти, может быть затруднительным. Он не определяет размер объекта, и если существует несколько объектов одного класса, их часто невозможно правильно обработать, поскольку между ними в куче могут находиться, например, векторы или списки. Но преимущество в том, что этот метод можно использовать для подключения к уже запущенному процессу, если он работает. Поддержка DMA (динамическое распределение памяти) в Cheat Engine является примером этого.
Перехват API работает совершенно по-другому: прелоадер загружает библиотеку в игровой процесс при его запуске. Библиотека следит за динамическим распределением памяти, и обнаружение начинается с их записи. При параллельном поиске в статической памяти можно сопоставить адрес найденного значения с уникальным распределением памяти. Идея состоит в том, чтобы закрыть игровой процесс сразу после того, как значение найдено и объект все еще существует. Тогда последнее соответствующее распределение памяти будет правильным. Поэтому предпочтительным методом является сопоставление обратного значения. Размер объекта, а также смещение значения внутри него обнаруживаются, а адрес кода возврата в двоичном файле игры может быть определен путем обратной трассировки. Часто находится конструктор, и с его помощью можно отслеживать все объекты памяти, которые он выделяет. Библиотека в игровом процессе и игровой тренер должны взаимодействовать друг с другом посредством межпроцессного взаимодействия (IPC) . Недостаток: это может быть обнаружено как вредоносное ПО . Но можно найти больше значений внутри объектов, выгружая и сравнивая их. Также упрощается адаптация к другим версиям игры и компилятора, поскольку достаточно найти в дизассемблере вызов библиотечной функции с известным параметром (размером объекта). Например, Бесплатный универсальный игровой тренажер с открытым исходным кодом (FOSS) «ugtrain» показывает этот метод полностью законным на FOSS . примерах игр [ 7 ]
Автоматизированные инструменты, используемые при изготовлении тренажеров
[ редактировать ]В прошлом тренеры часто писались на языке ассемблера или на любом другом языке высокого уровня, доступном в то время. Сегодня трейнеры также можно создавать с помощью автоматизированных инструментов создания трейнеров, которым требуется только базовая информация о читах, такая как адрес и код внедрения, затем программа компилирует трейнер с использованием заранее определенных значений и настроек, не требующих от конечного пользователя навыков программирования. Самым популярным инструментом для создания трейнеров, используемым сегодня, является Cheat Engine , который поддерживает широкий спектр типов инъекций и указателей. Другие инструменты, которые использовались в прошлом, но больше не применимы, - это Trainer Maker Kit , Game Trainer Studio , Trainer Creation Kit и т. д. [ 8 ] Некоторые из передовых методов, которые поддерживают тренеры Cheat Engine, включают в себя внедрение кода , сдвиг кода, а также гибкость и универсальность, обеспечиваемые сценариями Lua. [ 9 ] [ 10 ] который постепенно отказался от других инструментов для создания трейнеров, в которых не было поддержки некоторых из этих функций. [ 11 ]
Ссылки
[ редактировать ]- ^ «Информационная страница группы Defacto2 для Fairlight» . Содержит информацию об их старых демо-версиях и релизах, а также статистику . Архивировано из оригинала 6 октября 2011 года . Проверено 14 февраля 2014 г.
- ^ «Демо-версии группы Razor1911» . Подразделение демосцены Razor1911, которое писало впечатляющие демо еще на заре встраиваемых трейнеров . Проверено 14 февраля 2014 г.
- ^ «Тренер Хитмэна» . Именование тренеров современными группами тренеров . 21 ноября 2012 года . Проверено 14 февраля 2014 г.
- ^ «Список тренеров GCW» . Проверено 14 февраля 2014 г.
- ^ «Анонс известного сценического тренера группы ТГВ» . Проверено 5 июня 2015 г.
- ^ «Scanmem: введение типа региона и поддержка адреса загрузки» . Гитхаб . Проверено 5 июня 2015 г.
- ^ "универсальный игровой трейнер "ugtrain" " . Гитхаб . Проверено 25 декабря 2015 г.
- ^ «Инструменты для изготовления тренажеров» . Проверено 14 февраля 2014 г.
- ^ «Бесстрашная революция» . Сообщество, посвященное трейнерам и таблицам чит-движков . 25 марта 2020 г. Проверено 25 марта 2020 г.
- ^ «Луа» . Cheat Engine Lua Wiki, объясняющий некоторые функции сценариев, доступные в CE . 11 июня 2013 г. Проверено 14 февраля 2014 г.
- ^ «ОПТренеры» . Проверено 23 июня 2021 г.