Ищем Базовый Адрес

  • Автор темы Автор темы Lomanu4
  • Дата начала Дата начала

Lomanu4

Команда форума
Администратор
Ofline
Начну с небольшого отступления от собственно поиска базового адреса.

Так как графический материал статьи составляет 2.36 мегабайта, все скриншоты будут скрыты в тегах more, для экономии вашего трафика, и ускорения загрузки страницы.

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

Итак начнем.

1. Открываем Perfect World и CE.
2. Цепляем CE к процессу elementclient.exe (я предпочитаю делать это через меню, чего и вам желаю).
Скриншот
1.gif


3. Для продолжения процесса удобно иметь какую нибудь шмотку, добавляющую НР.
Я использовал:
Скриншот
2.gif


4. Итак ищем в CE значение нашего максимального НР (в поле value вводим значение НР и нажимаем First Scan).
Скриншот
3.gif


В поле найденных адресов у нас появится большая группа адресов.
Скриншот
4.gif


5. Снимаем нашу шмотку, дающую НР, и отсеиваем новое значение максимального НР (для этого вводим в поле value новое значение НР и нажимаем кнопку Next Scan)
Скриншот
5.gif


6. У меня осталось всего 2 адреса, если у вас больше - повторяйте пункт 5, до тех пор пока не останется 1 или 2 адреса. Итак 2 адреса, это адреса в которых содержатся значения текущего НР и максимального НР.
Для дальнейшей работы нам подойдет любой из них.
Скриншот
6.gif


7. Добавляем адрес из поля найденных адресов в поле работы с адресами (для этого 2 раза кликаем по строке с адресом).
Скриншот
7.gif


8. Щелкаем правой кнопкой мыши по адресу в поле работы с адресами, и в контекстном меню выбираем "Find out what writes to this addres".
Скриншот
8.gif


На вопрос о подключении дебаггера отвечаем Yes.
Скриншот
9.gif


Откроется новое окно.
Скриншот
10.gif


9. Теперь снимем/оденем (в зависимости от ее текущего положения) нашу шмотку дающую НР. У нас появится адрес с командой, которая записала значение в ячейку НР.
Скриншот
11.gif


10. Жмем на кнопку More Information
Скриншот
12.gif


И видим новое окно. В нем нас интерисует адрес выделенный красным.
Скриншот
13.gif


Для тех кто хочет понять откуда берется этот адрес

Строка выделенная красным это и есть команда которая писала в ячейку памяти НР, читаем в ней
mov [esi+0000046C],ecx
mov - команда копирования информации, в данном случае производится копирование из регистра процессора ecx в память выделенную клиенту игры, по адресу [esi+0000046C]. Запись esi+0000046C значит что необходимый адрес должно получать чтением значения из регистра процессора esi (это значение является адресом начала блока информации о персонаже) и прибавлением к полученному значению смещение 46C, которое указывает на НР в структуре персонажа. Следует обратить внимание что в регистре esi лежит значение, которое Cheat Engine любезно вынес нам отдельной строкой.

11. Вводим предоставленный нам адрес в строку поиска (value), не забываем поставить галочку в чекбоксе hex. Нажимаем New Scan и затем First Scan.
Скриншот
15.gif


12. Находим множество адресов, из них выбираем первый и добавляем в поле работы с адресами (двойным щелчком).
Скриншот
16.gif


13. Закрываем окна, которые вы видите на скриншоте.
Скриншот
17.gif


14. Щелкаем правой кнопкой мыши по свежедобавленному адресу и выбираем "Find out what accesses to this addres"
Скриншот
18.gif


15. Открылось окошко, и мы видим в нем несколько адресов, выбираем первый и щелкаем на More Information.
Скриншот
19.gif


16. Открылось очередное окошко (мне кажется читателю приходит в голову вопрос "Да сколько можно этих окошек?").
Из него берем адрес предложенный СЕ и добавляем в поиск. Давим на New Scan и затем First Scan.
Скриншот
21.gif


17. В списке найденых появилось много новых строчек, но одна из них подцвечена зеленым, это значит что адрес статический, тоесть не меняется при перезапуске клиента. Именно этот адрес является тем, который обычно нужен всяческим ботам и в частности PWGtm.
Скриншот
22.gif


18. Но на этом статья не оканчивается, ведь мы собрались тут что бы найти базовый адрес, этот пункт получится самым объемным по работе с меньшим количеством скриншотов, так как является повторением вышеописанных действий.
Итак, двойным щелчком добавляем наш "зеленый" адрес в поле работы с адресами. Закрываем лишние окна, те самые что закрывали парой пунктов выше. Давим на свежедобавленный адрес правой кнопкой мыши и выбираем пункт "Find out what accesses to this addres".
Появляется уже знакомое нам окошко, выбираем в нем первую строку и давим на More Information.
В строку поиска запихиваем адрес, который предложил нам СЕ.
Давим New Scan, First Scan.
Скриншот
23.gif


Найденный "зеленый" адрес и является базовым адресом приложения.
 
Назад
Сверху Снизу