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

Как найти базовый адрес на HP/AP для Unreal Tournament 2007, если mov [edx], ecx


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

Что некто не знает? Суть проблемы, в том что я не понимаю, как искать указатель или базовый адрес, в данной ситуации? Тут нет смещения, только значение самого динамического адреса и количество Healt Point/Armor Point. Обычно, алгоритм такой...

Есть стора, вида:

mov ecx, [edi+20]

где edi - это значение, указывающее на указатель или статический/базовый адрес, указывающий на динамический адрес Healt Point/Armor Point. Собственно, это число/значения я и начинаю искать... Но, сейчас, столкнулся с такой задачей что есть строка, вида: 

mov [edx], ecx

где edx - это сам динамический адрес Healt Point/Armor Point (Пробовал искать само значение, из самого регистра edx, которое равно самому динамическому адресу Healt Point/Armor Point, но, нечего не нахожу). У меня вопрос, как же найти указатель, базовый/статический адрес, указывающий на показатели Healt Point/Armor Point? o_0

P.S.: Сразу гвоорю что у меня малова-то опытна... Но, я все же не теряю упортсва! Вот и решил зайти сюда и спросить у понимающих людей совета...

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

Все просто: когда нет смещения, значит смещение равно нулю.

Интересно... Поясните, пожалуйста! Как же, искать, в таком случаи? O-=

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

А автопоиск поинтера слабо заюзать? 

 

Если не знаем как искать, то вот видео как его юзать:

 

https://www.youtube.com/watch?v=GGlHAQPeP7Q&list=UUuHpjKXcN7-sSNoUmORWUSQ

 

Если у тебя игра на инструкции выдает овер 200 адресов, то смотри это видео:

 

 

Видео смотри до конца.

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

Интересно... Поясните, пожалуйста! Как же, искать, в таком случаи? O-=

Посмотри на свой скриншот:

e7ad54ab2ac89a60661b15b94dbb880a.jpg

На нем видно, что СЕ нам говорит:

This value of the pointer needed to find address is probably 0A1E973C

Что базовый адрес следует искать дальше, используя адрес 0A1E973C, а поскольку инструкция mov [edx],ecx не имеет смещения, значит смещение равно нулю (0).

Соответственно:

Сделали поиск по точному значению (на скриншоте значение найденного адреса равно 77), поставили бряк на доступ - вылезла инструкция: mov [edx],ecx, записываем в блокнот (первой строчкой) - ноль (0).

Далее, копируем адрес 0A1E973C (из окна "Extra info") в буфер обмена (нажав в окне по этому адресу правой кнопкой мыши, и выбрав "Copy to clipboard" (или просто "Copy" - не помню как в английской версии)), и ставим галочку в главном окне СЕ на "HEX", после чего в поле "Value" вставляем этот адрес, и нажимаем кнопку "New Scan", после чего в списке адресов появятся новые адреса.

Что мы делаем дальше: ищем в этом списке адрес, который выделен зеленым цветом (если его нет - пропускаем этот шаг, и читаем с абзаца, который начинается со звездочки), если нашли "зеленый" адрес - добавляем его в список, нажав по нему дважды, и проверяем, если поле "Address" указывает на библиотеку "wowcpu64" - то удаляем этот адрес, т.к. точно можно сказать, что это не базовый адрес (читаем с абзаца под звездочкой), если же адрес не указывает на эту библиотеку, значит, скорее всего - найден правильный базовый адрес (продолжаем чтение с абзаца под двумя звездочками).

* Выбираем из списка адресов любой адрес, и ставим на него бряк на доступ (в английской версии не помню как называется, вроде бы "Toggle breakpoint to access"), и смотрим, какие инструкции выпали на этот раз. Допустим, появилась такая инструкция: mov [eax+18],edx, значит следующей строкой в блокнот (где мы записывали ноль) - пишем число 18, и снова копируем адрес, который нам показал СЕ (из окна "Extra info").

И продолжаем поиск по новому адресу (который только что скопировали в буфер обмена), и так до тех пор, пока не будет найден зеленый адрес, который НЕ указывает на библиотеку "wowcpu64", и записывая все найденные смещения в блокнот, на новую строчку.

** После того, как базовый адрес найден - самое время составить указатель. Для этого мы сначала должны скопировать значение поля "Address" из базового адреса, затем нажав на кнопку "Add Address Manually" (в главном окне СЕ), после открытия окна - ставим галочку на "Pointer", и в самое нижнее поле вставляем базовый адрес (тот, что мы копировали), и начинаем заполнять верхние поля числами в том же порядке, в котором мы записывали их в блокнот (только заполнять следует с нижнего поля, т.е. нижнее поле должно содержать ноль, т.к. первое смещение у нас именно ноль), после чего нажимаем на кнопку "OK" (или "Accept"... правда, не помню как в английской версии), и радуемся - указатель найден, теперь им можно пользоваться.

Важно!

Если полей для ввода смещений не хватает - надо нажать на кнопку "Add Offset", или, если полей слишком много - нажать на кнопку "Remove Offset".

Тоже важно, если есть желание учиться новому:

У СЕ есть программа обучения (поставляется в комплекте с самим СЕ), где есть несколько стадий (задач), где объясняется их взлом (каждый в отдельности).

Советую скачать русский языковой файл (от товарища SER[G]ANT), и установив его - проходить программу обучения на русском, да и сам СЕ будет на русском, что тоже может помочь.

[Ссылки:]

Скачать русификатор для СЕ 6.4 (SER[G]ANT)

Как установить языковой файл (NullAlex)

Раздел "TrainMe" на нашем форуме, где можно скачать программы обучения, на которых также можно попрактиковаться по взлому.

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

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

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

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