Что такое Оффсеты? Как найти и обновить?

Полезные Инструкции


Что такое Оффсеты?
Оффсет (Offset) - на простом языке, это смещение адреса в памяти. Например, в ячейке памяти есть игрок, по адресу 0x5100 (или любому другому), соответственно что этот объект содержит несколько ячеек данных: количество HP, процент брони, местоположение - координаты нахождения на карте, а также и другую информацию.

Как их найти и произвести обновление?
Вероятно вы зададитесь вопросом, как их найти и извлечь? Постараемся немного объяснить, на примере одновременно популярной и простой в этом плане игре Counter Strike: Global Offensive. Игровой движок Source имеет есть так называемые глобальные значения "Networked Variables" или же Netvar, сокращенный вариант. По сути, это обширные таблицы для каждого типа объекта. За известный адрес игрока, возьмем 0x5100, переносим игровой client.dll и загружаем в IDA- интерактивный дизассемблер. После открываем список строк через комбинацию клавиш Shitf + F12, в открывшимся окне и делаем поиск по строке, вписываем "Health" в переводе Здоровье (Игрока), после этого появится целый список с результатами.


На изображении выше, в после String есть много префиксов, но нужен именно тот, который имеет в начале "m_" - это член класса, в полном названии member. Для примера возьмем m_iHealth, который имеет следующий код:
class CBasePlayer
{
pad;
pad;
pad;
int m_iHealth; // 0xFC
}
Pad - это функция, в которой расположены другие члены класса, такие как:
  • int - integer "целое число";
  • float - число с плавающей запятой;
  • etc - оператор.
После двойного клика, вас перенесет на таблицу со следующей информацией:


Два раза кликаем по любому из столбиков, и перед глазами появляется очередная таблица:


Этими действиями, удалось найти Оффсет, который равен значению - 0xFC. Но на этом еще не все, осталось еще одно незаконченное действие, чтобы узнать внутренние значение, нужно выполнить код ниже, применяем его, так как тип данных integer:
void * player = getentity(....);
int health =   *(int*)((DWRD)player + 0xFC);
print( health );
Maksim
Maksim Гость 15 ноября 2021 04:33

Ну а как найти dll от другой игры? Я пытлся так и не нашел 

Cheats.ADM
Cheats.ADM @Cheats 16 ноября 2021 19:26

Maksim, Добрый вечер, какой именно игры?

Лох какой-то
Лох какой-то Гость 28 июня 2022 13:31

Maksim,
Тебе нужен чит енджин, ищешь например патроны, когда нашел смотришь под каким dll он стоит, там и будут эти патроны и тд, я так в кс 1.6 нашел dll

Лох какой-то
Лох какой-то Гость 4 июля 2022 19:01

В кс 1.6 hw.dll, client.dll 

{login}
Твой комментарий..

Разместим ваш чит

Loading...

Нашли ошибку?
Вы можете сообщить об этом администрации.
Выделив текст нажмите CTRL+Enter