Ofline
Начну с небольшого отступления от собственно поиска базового адреса.
Так как графический материал статьи составляет 2.36 мегабайта, все скриншоты будут скрыты в тегах more, для экономии вашего трафика, и ускорения загрузки страницы.
Необходимо понимать что "базовый" адрес, требующийся PWGtm (в народе волхак) не является действительно базовым адресом приложения. Он является статическим указателем на некоторые игровые структуры.
Итак начнем.
1. Открываем Perfect World и CE.
2. Цепляем CE к процессу elementclient.exe (я предпочитаю делать это через меню, чего и вам желаю).
Скриншот
3. Для продолжения процесса удобно иметь какую нибудь шмотку, добавляющую НР.
Я использовал:
Скриншот
4. Итак ищем в CE значение нашего максимального НР (в поле value вводим значение НР и нажимаем First Scan).
Скриншот
В поле найденных адресов у нас появится большая группа адресов.
Скриншот
5. Снимаем нашу шмотку, дающую НР, и отсеиваем новое значение максимального НР (для этого вводим в поле value новое значение НР и нажимаем кнопку Next Scan)
Скриншот
6. У меня осталось всего 2 адреса, если у вас больше - повторяйте пункт 5, до тех пор пока не останется 1 или 2 адреса. Итак 2 адреса, это адреса в которых содержатся значения текущего НР и максимального НР.
Для дальнейшей работы нам подойдет любой из них.
Скриншот
7. Добавляем адрес из поля найденных адресов в поле работы с адресами (для этого 2 раза кликаем по строке с адресом).
Скриншот
8. Щелкаем правой кнопкой мыши по адресу в поле работы с адресами, и в контекстном меню выбираем "Find out what writes to this addres".
Скриншот
На вопрос о подключении дебаггера отвечаем Yes.
Скриншот
Откроется новое окно.
Скриншот
9. Теперь снимем/оденем (в зависимости от ее текущего положения) нашу шмотку дающую НР. У нас появится адрес с командой, которая записала значение в ячейку НР.
Скриншот
10. Жмем на кнопку More Information
Скриншот
И видим новое окно. В нем нас интерисует адрес выделенный красным.
Скриншот
Для тех кто хочет понять откуда берется этот адрес
Строка выделенная красным это и есть команда которая писала в ячейку памяти НР, читаем в ней
mov [esi+0000046C],ecx
mov - команда копирования информации, в данном случае производится копирование из регистра процессора ecx в память выделенную клиенту игры, по адресу [esi+0000046C]. Запись esi+0000046C значит что необходимый адрес должно получать чтением значения из регистра процессора esi (это значение является адресом начала блока информации о персонаже) и прибавлением к полученному значению смещение 46C, которое указывает на НР в структуре персонажа. Следует обратить внимание что в регистре esi лежит значение, которое Cheat Engine любезно вынес нам отдельной строкой.
11. Вводим предоставленный нам адрес в строку поиска (value), не забываем поставить галочку в чекбоксе hex. Нажимаем New Scan и затем First Scan.
Скриншот
12. Находим множество адресов, из них выбираем первый и добавляем в поле работы с адресами (двойным щелчком).
Скриншот
13. Закрываем окна, которые вы видите на скриншоте.
Скриншот
14. Щелкаем правой кнопкой мыши по свежедобавленному адресу и выбираем "Find out what accesses to this addres"
Скриншот
15. Открылось окошко, и мы видим в нем несколько адресов, выбираем первый и щелкаем на More Information.
Скриншот
16. Открылось очередное окошко (мне кажется читателю приходит в голову вопрос "Да сколько можно этих окошек?").
Из него берем адрес предложенный СЕ и добавляем в поиск. Давим на New Scan и затем First Scan.
Скриншот
17. В списке найденых появилось много новых строчек, но одна из них подцвечена зеленым, это значит что адрес статический, тоесть не меняется при перезапуске клиента. Именно этот адрес является тем, который обычно нужен всяческим ботам и в частности PWGtm.
Скриншот
18. Но на этом статья не оканчивается, ведь мы собрались тут что бы найти базовый адрес, этот пункт получится самым объемным по работе с меньшим количеством скриншотов, так как является повторением вышеописанных действий.
Итак, двойным щелчком добавляем наш "зеленый" адрес в поле работы с адресами. Закрываем лишние окна, те самые что закрывали парой пунктов выше. Давим на свежедобавленный адрес правой кнопкой мыши и выбираем пункт "Find out what accesses to this addres".
Появляется уже знакомое нам окошко, выбираем в нем первую строку и давим на More Information.
В строку поиска запихиваем адрес, который предложил нам СЕ.
Давим New Scan, First Scan.
Скриншот
Найденный "зеленый" адрес и является базовым адресом приложения.
Так как графический материал статьи составляет 2.36 мегабайта, все скриншоты будут скрыты в тегах more, для экономии вашего трафика, и ускорения загрузки страницы.
Необходимо понимать что "базовый" адрес, требующийся PWGtm (в народе волхак) не является действительно базовым адресом приложения. Он является статическим указателем на некоторые игровые структуры.
Итак начнем.
1. Открываем Perfect World и CE.
2. Цепляем CE к процессу elementclient.exe (я предпочитаю делать это через меню, чего и вам желаю).
Скриншот
3. Для продолжения процесса удобно иметь какую нибудь шмотку, добавляющую НР.
Я использовал:
Скриншот
4. Итак ищем в CE значение нашего максимального НР (в поле value вводим значение НР и нажимаем First Scan).
Скриншот
В поле найденных адресов у нас появится большая группа адресов.
Скриншот
5. Снимаем нашу шмотку, дающую НР, и отсеиваем новое значение максимального НР (для этого вводим в поле value новое значение НР и нажимаем кнопку Next Scan)
Скриншот
6. У меня осталось всего 2 адреса, если у вас больше - повторяйте пункт 5, до тех пор пока не останется 1 или 2 адреса. Итак 2 адреса, это адреса в которых содержатся значения текущего НР и максимального НР.
Для дальнейшей работы нам подойдет любой из них.
Скриншот
7. Добавляем адрес из поля найденных адресов в поле работы с адресами (для этого 2 раза кликаем по строке с адресом).
Скриншот
8. Щелкаем правой кнопкой мыши по адресу в поле работы с адресами, и в контекстном меню выбираем "Find out what writes to this addres".
Скриншот
На вопрос о подключении дебаггера отвечаем Yes.
Скриншот
Откроется новое окно.
Скриншот
9. Теперь снимем/оденем (в зависимости от ее текущего положения) нашу шмотку дающую НР. У нас появится адрес с командой, которая записала значение в ячейку НР.
Скриншот
10. Жмем на кнопку More Information
Скриншот
И видим новое окно. В нем нас интерисует адрес выделенный красным.
Скриншот
Для тех кто хочет понять откуда берется этот адрес
Строка выделенная красным это и есть команда которая писала в ячейку памяти НР, читаем в ней
mov [esi+0000046C],ecx
mov - команда копирования информации, в данном случае производится копирование из регистра процессора ecx в память выделенную клиенту игры, по адресу [esi+0000046C]. Запись esi+0000046C значит что необходимый адрес должно получать чтением значения из регистра процессора esi (это значение является адресом начала блока информации о персонаже) и прибавлением к полученному значению смещение 46C, которое указывает на НР в структуре персонажа. Следует обратить внимание что в регистре esi лежит значение, которое Cheat Engine любезно вынес нам отдельной строкой.
11. Вводим предоставленный нам адрес в строку поиска (value), не забываем поставить галочку в чекбоксе hex. Нажимаем New Scan и затем First Scan.
Скриншот
12. Находим множество адресов, из них выбираем первый и добавляем в поле работы с адресами (двойным щелчком).
Скриншот
13. Закрываем окна, которые вы видите на скриншоте.
Скриншот
14. Щелкаем правой кнопкой мыши по свежедобавленному адресу и выбираем "Find out what accesses to this addres"
Скриншот
15. Открылось окошко, и мы видим в нем несколько адресов, выбираем первый и щелкаем на More Information.
Скриншот
16. Открылось очередное окошко (мне кажется читателю приходит в голову вопрос "Да сколько можно этих окошек?").
Из него берем адрес предложенный СЕ и добавляем в поиск. Давим на New Scan и затем First Scan.
Скриншот
17. В списке найденых появилось много новых строчек, но одна из них подцвечена зеленым, это значит что адрес статический, тоесть не меняется при перезапуске клиента. Именно этот адрес является тем, который обычно нужен всяческим ботам и в частности PWGtm.
Скриншот
18. Но на этом статья не оканчивается, ведь мы собрались тут что бы найти базовый адрес, этот пункт получится самым объемным по работе с меньшим количеством скриншотов, так как является повторением вышеописанных действий.
Итак, двойным щелчком добавляем наш "зеленый" адрес в поле работы с адресами. Закрываем лишние окна, те самые что закрывали парой пунктов выше. Давим на свежедобавленный адрес правой кнопкой мыши и выбираем пункт "Find out what accesses to this addres".
Появляется уже знакомое нам окошко, выбираем в нем первую строку и давим на More Information.
В строку поиска запихиваем адрес, который предложил нам СЕ.
Давим New Scan, First Scan.
Скриншот
Найденный "зеленый" адрес и является базовым адресом приложения.