Перейти к содержанию

Классификация, понятия в геймхакинге.


MasterGH

Рекомендуемые сообщения

На общее обсуждение предлагаю внести классификацию некоторых терминов в геймхакинге. А также предлагаю пользоваться некоторыми новыми терминами, касающихся типов инструкций, а также дополнить или изменить классификацию.

[sp=Скрыто]Опкод (Operation Code) - часть инструкции, равная одному байту

Ноп (Nop - Noop) - опкод "пустой", ничего не делающей инструкции. Используется для выравнивания оригинальных инструкций при создании Code Cave.

Нопить - забивать какую-либо инструкцию нопами (nop).

Типы данных - прежде всего тип данных обусловлен размером количества единиц информации битов или байтов. Затем процессор может их воспринимать как знаковое число, целое число, вещественное число или как текст.

Проверочные байты - байты, которые не меняются при разных обновлениях и патчах игры. Помогают найти определить адрес внедрения, если он был смещен.

Статический адрес - адрес в памяти, который не меняет своего положения в памяти игры. Виден как зелёный адрес в Cheat Engine и MHS. Находится в регионах памяти с типом Image.

Динамический адрес - адрес в памяти, который меняет своё положение в памяти игры после некоторого события.

Цепочка указателей - указатель на указатель больше чем одного уровня. Представление цепочки указателей обозначается фигурными скобками. Пример f[[game.exe+0x6454]+5*54h]. Более подробно в справке MHS.

Структура - структура это набор данных. Главные параметры структуры: есть начало и конец, соответственно размер. В структурах могут быть данные как одного типа так и разных.

Расструктуризация - раскрытие характеристик определённых структур данных при которой становится известно, на каком смещении от начала структуры какие данные находятся. Например, здоровье находится на смещении +0x48, от начала структуры или начала структуры объекта.

Объект (игровой объект) - объект можно воспринимать буквально как явление, предмет, на к-рый направлена чья-н. деятельность, чье-н. внимание (книжн.) . Объект в программировании или при обмане игр, когда речь идёт об инструкциях работающих с объектами стоит воспринимать как структуру данных в памяти, которая отражает поведение некоторой абстрактной сущности. Например, юнита в игре можно реализовать как объект на основе описания класса юнита. Объект наполняется данными по описанию класса, также к данным по смещениям от начала структуры объекта "привязываются" методы. Таким образом методы будут работать с некоторым объектом на основе описания класса.

Класс - это описание данных и методов объекта. На описании класса реализуются объекты или один объект. Класс также является типом.

Метод - это в ассемблерном представлении, это блок кода который работает только с определённым классом. Этот блок кода может вызывать от куда угодно, но он будет работать с данными класса к которому привязан.

Массив данных - массив представляет однотипную структуру данных. Например, массив байт или массив некоторых объектов.

Отладчик - обычно, включает в себя также дизассемблер. Позволяет ставить брекпоинты, снимать показания регистров изменять регистры и т.п.

Брейкпоинты - точки остановки программы. Можно поставить на адрес на чтение и запись. Можно поставить на инструкцию. В результате остановки игрового процесса можно снять показания регистров. Брейкпоинты бывают также условные, которые выполняются при определённых условиях (см. правку по ollyDbg)

Дизассемблер - позволяет перевести байт-код в ассемблерное представление. Ассемблер - язык программирования, самый близкий к машинному.

Регистры - информацию по регистрам смотреть в Интернете или у нас на форуме. Своими словами это операнды, которыми оперирует процессор, выполняя те или иные инструкции.

Инструкции - или ассемблерные инструкции, также смотреть в Интернете или у нас на форуме. Дизассемблированные инструкции отражают какую-то операцию происходящую в игре. С помощью программ CE, MHS можно изменять инструкции изменяя поведение игры и её игровых объектов.

Часто обращаемая инструкция - инструкция которая срабатывает очень быстро.

Определение адресов на инструкции - определение результирующих адресов с которыми происходит работа. Например, есть инструкция mov eax, [ecx*4 + 64]. В квадратных скобках может проскакивать множество адресов, которые можно определить средствами CE или OlltDbg.

Классификация инструкций сработавших при брейкпоинте.

-Тип А

Данная инструкция работает с некоторым единственным параметром только определённого игрового объекта.

Например, здоровье от структуры находится по смещению +155. Инструкция А, работает только с этой структурой, только со смещением +155.

-Тип B

Эта инструкция работает с параметрами двух и более объектов, параметры которых находятся по одинаковым смещениям.

Например, у нас шесть объектов - игроков, у которых по смещениям +155 находится здоровье. Инструкция типа B получает указатель на начало некоторой структуры объекта игрока, прибавляет смещение +155 и работает с параметром (читает параметр из адреса или пишет в адрес). Таким образом, инструкция типа B может отнимать здоровье у героя, а также отнимать здоровье у врагов.

-Тип С

Данный тип инструкций может работать с данными находящимися не по одному (как при типах А и В), а по разным смещениям относительно одной или более структур. Стоит не путать тип А с С, т.к. инструкция А работает с одним смещением, тоже самое касается и B.

Отсюда мы получаем подтипы:

C(А) - работает с разными смещениями одной структуры (объекта);

C(B) - работает с разными смещениями более одной структуры (объекта).[/sp]

Ссылка на комментарий
Поделиться на другие сайты

Да не за что, я уже кстати кое что подредактировал и похоже буду ещё редактировать и редактировать.

Также жду мнение Xipho, может он добавит какие-нибудь "термины"

Ссылка на комментарий
Поделиться на другие сайты

Опкод (Operation Code) - часть инструкции, равная одному байту

Ноп (Nop - Noop) - опкод "пустой", ничего не делающей инструкции. Используется для выравнивания оригинальных инструкций при создании Code Cave.

Нопить - забивать какую-либо инструкцию нопами (nop).

Пока все. Еще что-нибудь придет в голову - напишу.

ЗЫ. Термины можно добавить в первый пост.

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.