Тренер (игры)

Тре́нер — программа, предназначенная для изменения поведения игры (например, делающие игрока бессмертным), обычно работающая непосредственно с оперативной памятью компьютера.

В 1980-ых и 1990-ых годах тренеры обычно встраивались хакерами прямо в код игр. При запуске игры, сначала запускался тренер с диалоговым окном «Вы хотите использовать читы?» Дальше выполнялся код игры. В названии тренера использовались знаки сложения (+), по одному на каждую опцию тренера. Например, «Группа Хакеров представляет: Игра+++» (три опции, например, бессмертие, бесконечная аммуниция и телепортация).

Современные тренеры обычно запускается как отдельная программа (до игры) и в своих названия используют один знак сложения с числом опций после него, например, «Doom 3 Trainer +15». Кроме того, современные тренеры работают с оперативной памятью игры, а не её исполняемым файлом, поскольку внесение изменений в исполняемый файл осложняется системами защиты от копирования.

Методы создания тренеров

Для создания тренеров используются дамперы памяти, отладчики и дизассемблеры. Самый простой способ создать тренер - поискать в памяти значения, совпадающие с нужным игровым параметром. Затем изменить его и поискать в получившемся списке снова. После нескольких итераций скорее всего останется небольшой список адресов, значения по которым можно попытаться изменить. Существует множество утилит (ArtMoney,...), автоматизирующих процесс поиска и изменения значений.

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

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

Защита от тренеров

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

Ссылки

 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home