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

sivka

Стажёры
  • Постов

    2
  • Зарегистрирован

  • Посещение

Репутация

0 Навыки не прокачены
  1. Это я так, набрал просто для примера. Суть тут вот в чём. В обычной ситуации я пытаюсь найти указатель, составляя цепочку смещений от статического адреса (условного game.exe+4914D) до баланса денег. Получается очень огромное количество смещений. Под смещениями я имею в виду mov esi,game.exe+4914D mov eax,[esi+192] mov esi,[eax+04] mov eax,[esi+0c] ... mov eax,[esi+cc] <--- eax является адресом на баланс игрока. Потом я жму кнопку "Добавить Адрес" в cheat engine и прописываю указатель [game.exe+4914D] и чуть выше в том же окне указываю найденные смещения. Но в данном случае, я вычисляю смещения, а предпоследней инструкцией идёт lea, то есть прибавление 16c к числу 05E835E0(после каждой операции в игре, данное число изменяется. Но я использовал его для примера). mov esi,game.exe+4914D mov eax,[esi+192] mov esi,[eax+04] mov eax,[esi+0c] ... lea esi,[eax+16c] mov eax,[esi+cc] <--- eax является адресом на баланс игрока. И я не понимаю, как поступить, если хочу добавить в таблицу указатель. Что прописывать в смещениях? Или это делается как-то иначе? Скриптами, может? Я совсем новичок, и может просто не понимаю сути и задаюсь глупыми вопросами.
  2. Я только-только заинтересовался взломом игр, посмотрел курс видео на ютубе и решил потренироваться. Решил найти указатель на значение денег в игре, что была под рукой -- Uplink. И возможно зря. Uplink довольно замудрённая игра со всякими секретными штуками, шифрованными сохранениями и головоломками. Предполагаю, что и в коде игры могут быть какие-нибудь сюрпризы для взломщиков, которые сильно усложнят обучение новичка. Для начала: подскажите, мои действия по поиску указателей вообще верны, или я от незнания занимаюсь бессмысленным кодовредительством? Для начала я нахожу значение денег. Следующим шагом ставлю брейкпоинт на запись, вижу инструкцию, что очень часто обращается к адресу денег. Предполагаю, что это что-то вроде отрисовки баланса на экране. Далее я исследую дизассемблер. Я вижу инструкцию >>>mov ECT,[ESI+cc] В данном случае ECT -- адрес денег, а ESI -- адрес структуры "Банковский Аккаунт". В структуре по смещению CC хранится значение денег. Для нахождения статического адреса я беру число из ESI и ищу, как оно формируется. Выше по коду я нахожу функцию, в конце которой ещё одна инструкция >>>mov ECT,[ECT+c] Ну и далее я проделываю то же самое -- нахожу где формируется ECT, записываю смещение, иду выше по коду, и так до тех пор, пока не наткнусь на инструкцию вида >>>mov ESI,GAME.EXE+498DC Копирую значение, добавляю адрес в таблицу, жму галочку "указатель" и прибавив к этому GAME.EXE смещения, найденные ранее, я получаю указатель. Всё верно? До сих пор этот метод срабатывал во всяких весёлых фермах и System Shock 2. Но сейчас я столкнулся с непониманием устройства Cheat Engine. Алгоритм поиска указателя остался прежним, но теперь я наткнулся на инструкцию >>>lea ECT,[ESI+16c] Я прочитал об этой инструкции в сети, и как я могу понять, в данном случае важно только то, что инструкция просто прибавляет к числу ESI 16c. То есть превращает условное 00000000 в 0000016c. И тут я попал в тупик, поскольку не понимаю, что мне делать с этим числом. Ведь при добавлении числа со смещением в таблицу, в качестве указателя, оно, что логично, указывает на какие-то случайные значения. То бишь, вот моя цепочка от инструкции lea. баланс <--- 05D8A490+cc <--- 05E8374C+c <--- [05E835E0+16c] (lea) То есть, третье звено -- это не значение, и не смещение. Это адрес+число. 0000+01 = 0001. 05E83 5E0+16c = 05E83 74C. И как мне с этим работать, как в окне добавления указателя прибавить число к адресу? И нужно ли это вообще делать, или я просто не понимаю всего функционала программы и пытаюсь забивать гвозди микроскопом? В завершении хочу добавить, что моя цель -- не взломать игру, а понять, почему привычный метод поиска статического адреса с добавлением в таблицу Cheat Engine указателя не работает, и научиться решать эту проблему.
×
×
  • Создать...

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

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