PDA

Просмотр полной версии : [Руководство] Ищем базовый адрес Perfect World при помощи Cheat Engine.


Dinmaite
09.09.2010, 13:28
Начну с небольшого отступления от собственно поиска базового адреса.

Так как графический материал статьи составляет 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.
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
Найденный "зеленый" адрес и является базовым адресом приложения.

Nitrosgen
09.09.2010, 13:45
я через прыжки ищу, заодно смещение для джамп хака :)

Ranger13
09.09.2010, 17:39
было, зачем было выкладывать еще раз, хоть и немного удобнее эту читать?

Dinmaite
09.09.2010, 17:51
Рейндж, а ты мне и скажи удобнее читать или нет.
На мой взгляд у меня доступнее написано/нарисовано.

Ranger13
09.09.2010, 17:58
Удобнее. Всё, не буду спорить, удаляй сообщения

Greens
19.09.2010, 00:39
Dinmaite , скажи пожалуйста, у таких значений как хп и мп при презагрузке клиента меняются адреса,или нет?

Dinmaite
19.09.2010, 00:44
Адреса меняются у всех значений, которые могут нам хоть что-то дать.
Статичны только адреса в блоке .CODE и .DATA (если я не ошибаюсь, а могу и ошибаться).

Corel
27.09.2010, 04:46
Почему при работе дебагера, когда пытаюсь найти смещение данных о хп моба клиент ПВ вылетает? Или это надо искать через поинтер скан? если да то как?

7sky7
03.10.2010, 19:22
В онлайн PW читер не работает,просто создает иллюзию,или я не правильно что-то сделал? Как обойти сервер? Кто сможет ответить....

Ranger13
03.10.2010, 19:38
это онлайн игра, детка=)
Здесь данные о персонаже не на диске ЦЭ хранятся в скрытой папочке, а на сервере

7sky7
03.10.2010, 21:25
Это я знаю,но ща хакеры и не такое могут...Кстати детки у тебя во дворе сидят,или ты всех так мужиков называешь? Педигрипал ты чтоль?

FatherUA
13.02.2011, 22:33
Поднимаю тему....посидел такс с часок и нашел два дата адресса, но так и не таргиться самостоятельно в MHS, а в Revo 3.1 ненаходит нужные координаты чара=( помогите плизз... дата адресса первый: 77056024 второй: 10228984 дайте плизз ответ

Dinmaite
14.02.2011, 08:22
И судя по тому что я вижу оба не верные, еще нигде таких не встречал.
Ну или назови свой сервер.

ZeZ
16.02.2011, 22:05
Прошу прощения за нубство у меня MHS просит вот эти настройки что именно туда вводить и как высчитать ?

[Perfect_World_Base_Address_In_Decimal]
Application_Title=
Base_Address=
[Custom_32_Offsets_In_Decimal]
Target_OffSet=
HP_OffSet=
MaxHP_OffSet=
MP_OffSet=
MaxMP_OffSet=
BA вводил неправильно показывает данные

~ГайвеР~
17.02.2011, 01:20
Прошу прощения за нубство у меня MHS просит вот эти настройки что именно туда вводить и как высчитать ?

[Perfect_World_Base_Address_In_Decimal]
Application_Title=
Base_Address=
[Custom_32_Offsets_In_Decimal]
Target_OffSet=
HP_OffSet=
MaxHP_OffSet=
MP_OffSet=
MaxMP_OffSet=
BA вводил неправильно показывает данные

Для этого бота есть прога ntKid[MHS-RETRIEVER], она сама генерирует нужные оффсеты

BiG_BoY
21.02.2011, 09:44
Так этим путём можно увеличить количество хп или ещё что-то?

~ГайвеР~
21.02.2011, 11:23
Только визуально, на самом же деле, останется все как и было
это онлайн игра, детка=)
Здесь данные о персонаже не на диске ЦЭ хранятся в скрытой папочке, а на сервере

67boy
05.03.2011, 10:52
Вот у меня вопрос как я узнал из этой темы:
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
Там что бы перенаправить прогу на другую игру, нужно знать базовый адрес.
Так когда я узнаю, то куда его там вставить?? Я там даже подобное не нашел. Спасите плз!!!!!!

semoder
05.03.2011, 11:15
А это что ?

[DllImport("kernel32.dll")]
public static extern Int32 ReadProcessMemory(
IntPtr hProcess,
IntPtr lpBaseAddress,
[In, Out] byte[] buffer,
UInt32 size,
out IntPtr lpNumberOfBytesRead
);

// Определение базового адреса и оффсетов
// для текущей версии клиента руоффа (130)
private int baseAddress = 0x98B47C,
offsetHP = 0x464,
offsetMP = 0x468,
offsetMaxHP = 0x494,
offsetMaxMP = 0x498;

// Служебная переменная для хранения PID процесса
private Int32 PID = 0;
private Timer updateTimer;

67boy
05.03.2011, 12:45
Большое спасибо.
А тут:
baseAddress = 0x98B47C,
offsetHP = 0x464,
offsetMP = 0x468,
offsetMaxHP = 0x494,
offsetMaxMP = 0x498;

Поменять только baseAddress и готово?

Добавлено через 4 минуты
Или еще надо заменить это:
offsetHP = 0x464,
offsetMP = 0x468,
offsetMaxHP = 0x494,
offsetMaxMP = 0x498;
Если да, то как узнать эти значения??

VeTaL_UA
05.03.2011, 15:01
67boy, Попробуй этим ([Ссылки могут видеть только зарегистрированные и активированные пользователи]))

semoder
05.03.2011, 15:02
В сообщении ([Ссылки могут видеть только зарегистрированные и активированные пользователи]) Dinmaite всё подробно объяснено, да и с картинками :pandal:

67boy
05.03.2011, 15:33
67boy, Попробуй этим ([Ссылки могут видеть только зарегистрированные и активированные пользователи]))

Да спасибо, помогает, но оно не все значения выбивает + базовые адрес невыдал. Я пробывал к игре [Ссылки могут видеть только зарегистрированные и активированные пользователи] Silkroad Online. Блин, надо что то другое!!!

Добавлено через 2 минуты
В сообщении Dinmaite всё подробно объяснено, да и с картинками
Я не заметил, что бы там было что то про оффсеты. Может я проглядел??

KingAlexs
06.03.2011, 01:01
Значит, как расписал выше нахождение значения через СЕ, можно поменять значение жизней? сколько захочеш? хоть 1000\

VeTaL_UA
06.03.2011, 12:39
можно поменять значение жизней
Поменять то можно, но видеть это будешь только ты и менее ватным ты от этого не станешь)
хоть 1000
/facepalm/facepalm/facepalm

finkrer
06.03.2011, 12:44
хоть 1000
Ну, 1000 жизней это как-то слишком /facepalm

vfckjd
14.03.2011, 17:26
Извените плиз за нубский вопрос
Зачем это нужно?

VeTaL_UA
14.03.2011, 22:13
Это нужно для написания программ, или для ввода в программы, например, в PWGMT...

alexdnepro
25.03.2011, 01:09
Спасибо за гайд, очень помог, теперь прикрутил захват координат из pwi и руофа в нпсген редактор.

MyLongPencil
25.03.2011, 15:29
Спасибо за гайд, очень помог, теперь прикрутил захват координат из pwi и руофа в нпсген редактор.
Этот раздел похож на раздел писькомерни?

VeTaL_UA
25.03.2011, 17:57
Этот раздел похож на раздел писькомерни?
А где ты здесь увидел писькомерню? Человек просто сказал, чем ему эта статья помогла...

ApOsToL123
30.03.2011, 00:06
А может быть офсет 924E0C?оО

И куда здесь офсет кидать то?(в этом деле нуп)
;Base Address and Offsets must be written in decimal!

[Base_Address]
Application_Title=Element Client
Base_Address= сюда?
[Offsets]
Fly=1620
Shop=1432
Jump=3032

mires51
10.04.2011, 23:53
Dinmaite, Спасибо сначало не понял а патом разлобрался

ivasik
14.04.2011, 02:53
Очень много перелопатил информации. Аж после этого гайда догнал, каким образом ищется базовый адрес))

/BES\
20.04.2011, 20:19
подскажите где найти

CountAdr=
FirstAdr=


заранее спасибо

Dinmaite
20.04.2011, 20:50
Сложно сказать, ведь каждый автор называет свои переменные так, как ему удобно. И что конкретно означают эти 2 переменные (особенно не видя программы) понять невозможно.

/BES\
20.04.2011, 21:43
вот ([Ссылки могут видеть только зарегистрированные и активированные пользователи]) программа

вот часть кода с оффсетами:

[Ofs]
CountAdr=0xНЕИЗВЕСТНАЯ_ЧАСТЬ
FirstAdr=0xНЕИЗВЕСТНАЯ_ЧАСТЬ
;Отладочное, этот адрес в реальности не нужен и закомментирован
;LastAdr=0xНЕИЗВЕСТНАЯ_ЧАСТЬ


изначальный файл конфига:

; Всё просто: это файл с настройками приложения...

;Это адреса, используемые программой. Если они хексовые,
;то обязаны начинаться с префикса 0x
[Ofs]
CountAdr=0x9C4014
FirstAdr=0x9C4008
;Отладочное, этот адрес в реальности не нужен и закомментирован
;LastAdr=0x9C400C

;Цветовые теги каналов (БЕЗ префикса 0x, допустимы только HEX)
[Tags]
Common= FFFFFF
World=FFE400
Guild=00FFFC
Party=00FF00
Market=FF742E
PrivateRose=FF4AB0
PrivateBlue=0065FE
System=BED293
Damage=C0C0C0
Announce=FF3600
Other=9AA6FF
Exp=FF7E00

;Дополнительные теги.
;В данном случае ими выделяется ник персонажа в чате.
[AddTags]
Nick1=&
Nick2=Вы говорите с &
Nick3=&:
Nick4=& шепчет

;Настройки GUI

semoder
20.04.2011, 22:20
Прочитай ([Ссылки могут видеть только зарегистрированные и активированные пользователи])... А может я и ошибаюсь?

/BES\
20.04.2011, 22:23
я видел) оффсеты то в любом случае придется обновлять)))

semoder
20.04.2011, 22:32
CountAdr=0xA603B4
FirstAdr=0xA60398

под вопросом оба

/BES\
20.04.2011, 22:56
сразу 2 вопроса:

1)какие это переменные?(что обозначают)
2)каким образом получены?

semoder
20.04.2011, 23:29
Тык ([Ссылки могут видеть только зарегистрированные и активированные пользователи]) + этаже дэмка чтения чата для руоффа)

VirusTotal ([Ссылки могут видеть только зарегистрированные и активированные пользователи] c7bd80564fe1dc5c5d3b7a85e79b0-1303327670)

/BES\
21.04.2011, 00:07
нееее,это не то....вышеуказанная мною прога гораздо удобней для юзера,да и в ХТМЛ как то приличней смотрится(цвета,смайлы)

semoder
21.04.2011, 00:14
Ну это само собой, ты найди автора проги и попроси обновить чатлоггер... Без этого работать ничего не будет
Либо, пиши свой)))

/BES\
21.04.2011, 13:58
я только осваиваю дельфи ='(
...бум пробовать....

korobo
24.04.2011, 16:34
Странно... мучилась мучилась, в итоге оказалось что адресс находит только в первой попытке...потом не отвечает на запросы.

Sirioga
24.04.2011, 17:14
адресс находит только в первой попытке...потом не отвечает на запросы
Остаётся только сидеть и думать, что бы это значило ☺
Опиши пожалуйста подробнее свою проблему.

gros12345
06.07.2011, 20:46
у меня в пункте 16 выдает тоже самое что и в пункте 14 ,что делать??я уже так 3 раз все по гайду делаю,а оно всеравно и так не изменяет число в 16п

Тоха14
11.07.2011, 21:35
я всё зделал по гайду, ввожу такой адрес 00926fd4, а ВХ пишет неправельный адрес

][V][ЭН
12.07.2011, 15:22
я всё зделал по гайду, ввожу такой адрес 00926fd4, а ВХ пишет неправельный адрес

У меня 00A5BFCC и все работает. Попробуй...

VeTaL_UA
12.07.2011, 16:21
я всё зделал по гайду, ввожу такой адрес 00926fd4, а ВХ пишет неправельный адрес
PWGTM требует не базовый адрес, а game address, а ga сейчас $00A5BFCC...

elenium
03.08.2011, 14:55
Возникла проблема с поиском базового адреса клинта Pworld exclusive, при ручном поиске с помощью СЕ, на последнем 18 этапе выдается не 1 адрес, подсвеченный зеленым, а несколько, а при поиске OffsetFinder`ом нормально находится base_calladress и некоторые оффсеты, но базовый адрес опять же не ищет.
Заранее спасибо.

Dinmaite[Work]
03.08.2011, 15:13
Тот что "офсетфаиндером" находится как base_calladress с вероятностью 95% (Просто никогда не пользовался данной утилитой) является базовым адресом.
Вообще я бы посоветовал Вам перед тем как работать с данным клиентом снять с него криптор (скорее всего там Molebox)

VeTaL_UA
03.08.2011, 15:15
Возникла проблема с поиском базового адреса клинта Pworld exclusive, при ручном поиске с помощью СЕ, на последнем 18 этапе выдается не 1 адрес, подсвеченный зеленым, а несколько, а при поиске OffsetFinder`ом нормально находится base_calladress и некоторые оффсеты, но базовый адрес опять же не ищет.
Заранее спасибо.
Такая же фигня была при поиске ВА на newPangu... Приченой этого может быть то, что клиент запакован MoleBox'ом... Если хочешь, то закинь elementclient.exe сюда... Помогу найти ВА...
;1573073']Тот что "офсетфаиндером" находится как base_calladress с вероятностью 95% (Просто никогда не пользовался данной утилитой) является базовым адресом.
Насколько я помню, base_calladress - это GA...

Dinmaite[Work]
03.08.2011, 15:25
Если присутствует "calladress" то обычно это значит что данный адрес нужен для вызовов (инжектов) А для этого таки обычно используется реальный базовый адрес.
Но по факто кто его знает. В любом случае если снять пакер - базовый адрес найдется обычным путем.

elenium
03.08.2011, 16:44
Спасибо за быстрые ответы.

VeTaL_UA,
elementclient.exe ([Ссылки могут видеть только зарегистрированные и активированные пользователи])

virustotal.com ([Ссылки могут видеть только зарегистрированные и активированные пользователи] 699e9e707f90c9f25f369ed6e9913-1312374779)

Буду благодарен за помощь, хотя сам тоже поищу анпакер.

Dinmaite[Work]
03.08.2011, 16:46
Ну как я и предполагал "packers (F-Prot): Molebox"
Что-то сервермейкеры зачастили пользовать данный пакер.

VeTaL_UA
03.08.2011, 17:10
Буду благодарен за помощь, хотя сам тоже поищу анпакер.
Не найдёшь) Ручками распаковывать надо)
;1573511"]Что-то сервермейкеры зачастили пользовать данный пакер.
+1 Уже четвёртая ПвПешка запакована этим чудом)

Ну теперь оффсеты:
BA - $009C0E6C
GA - $009C1514
Остальное искать лень, так как оно совпадает с этим ([Ссылки могут видеть только зарегистрированные и активированные пользователи]).

P.S. Инжекты на клиенте запакованном MoleBox'ом работают через раз...

Dinmaite[Work]
03.08.2011, 17:31
Что удивительно действительно через раз, прямо таки как на душу придется.
Кстати если во время проведения инжекта подключен дебаггер - все работает как часы. Это я к тому что возможно, достаточно получить привилегии отладчика.

Jok3r666
17.08.2011, 08:34
Адреса меняются у всех значений, которые могут нам хоть что-то дать.
Статичны только адреса в блоке .CODE и .DATA (если я не ошибаюсь, а могу и ошибаться).
Если я правильно понял, то все офсеты(адреса) меняются. Не меняется только бэйс адрес и относительно его нужно вычислять другие?
Сори я нупася еще, хочу научиться писать боты под пв.

Dinmaite
17.08.2011, 19:25
Верно понял, почти.
Адреса меняются, офсеты не меняются.

Jok3r666
28.08.2011, 19:05
12. Находим множество адресов, из них выбираем первый и добавляем в поле работы с адресами (двойным щелчком).

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

Почему именно первый?
Я тут просто ща мозг напрягаю с инфой в коте и по первому адресу "acces" к нему имеет тот же самый адрес который я искал.:eek:
помогите разобраться с поиском офсетов
:bow:
в примере с хп четко видно последовательность но вот в других случаях когда используется i*4 например я даж понятия не имею как оно выглядит в асм

Jok3r666
02.09.2011, 13:35
если можно то вылажите пожалуйста мануал, как с помощью СЕ найти офсеты количества предмета в 1 ячейке своего инвентаря.
Просто мозг лопается
через се ерунда получается

Marazmatic
03.09.2011, 22:48
я через прыжки ищу, заодно смещение для джамп хака
А каким образом через прыжки? просто мне надо в клиенте найти адреса не задействаванные горячими клавишами на клаве, ну или как то так. Пытаюсь Quikbar создать. Удается уменьшить панель, а вот увеличить, ни в какую.

Хакер94
06.09.2011, 12:08
Молодец оформил хорошо,все работает!

shumanit
05.12.2011, 00:33
Подниму древнюю тему.
Вопрос:
Что делать если при попытки посмотреть через СЕ что пишется в адрес ( "Find out what writes to this addres") и аттаче дебагера к процессу клиент крашится?? (клиент не PW)

Dinmaite
05.12.2011, 18:53
2 варианта:
Использовать СЕ в защищенном режиме, либо искать обход для своей игры.

shumanit
05.12.2011, 21:09
Dinmaite, большое спасибо за ответ! А какую версию СЕ Вы используете?
защищённый режим это Вкл попытку предотвращения обнаружения (или как то так)?
Если да - то к сожалению не работает) А игра Forsaken World.

p/s/
Решил проблемку.
Что бы обойти защиту нужно запускать дебаггер в kernellmod'e.

revi994
28.03.2012, 09:32
подниму тему.
Что делать если число нельзя изменить в программе то есть она всегда одинаковое как тогда искать?
Пункт 9

BritishColonist
29.03.2012, 01:35
revi994, надеюсь, речь идёт о значении, разном для разных экземпляров одного класса.
Например, для мага одно значение, а для приста - другое, но отсеивать нечего, так как придётся сменить персонажа.
Если так, то поможет эта тема ([Ссылки могут видеть только зарегистрированные и активированные пользователи]).

revi994
29.03.2012, 19:22
Я ввожу в CE поиск текста.
Там есть текст типа 999
Я нашол его адресс.
Попробывал найти его поинтер и офсет.
Но нечего не вышло так как нельзя его изменить из игры

vogel
31.03.2012, 21:32
Зря ты решил искать текст. Т.к. под строки обычно выделяется память в момент, когда надо эту строку создать и гденибудь показать. Потом, когда строка уже не нужна - данный участок памяти считается свободным, и указателей на него нет, но значения старой строки в нём по прежнему есть.
Поэтому строку-то ты найдёшь, а вот ссылку на неё уже нет.

А вообще скажи, что конкретно ты хочешь найти - постараюсь тебе помочь.

ced40b
04.04.2012, 18:20
у меня два вопроса как сказать спасибку=) и можно ли путём всех этих действий поменять своё колиство хп маны атаки итд?

BritishColonist
04.04.2012, 18:52
ced40b, кнопка "Спасибо" доступна после написания 10 сообщений в секциях форума, где счётчик сообщений включён (например, здесь). Разумеется, не стоит флудить для этого.
Найденные значения можно изменить, но, так как они хранятся на сервере, а не у тебя в игре, то реального эффекта ты не получишь, только визуальный.

.AsTex.
05.04.2012, 17:52
Пфффф... Пытался найти оффсеты шмота других персов, но нифига не получается...

alegr
12.04.2012, 22:31
Dinmaite, Подскажи, пожалуйста, может, вопрос немного не в тему, но как найти оффсет ника? и как его считывать с помощью ReadProcessMemory (пишу в С++, но делфи тож пойму)? хочу здесь и в jade dynasty сделать небольшой калькулятор для клана со сбором инфы. всё работает, а вот ник никак найти не могу)) в СЕ я пробовал найти, но как-то мне выдало значений эдак 150 и все с моим ником (правда, один из них зелёный) но как узнать, что это именно оно?

Dinmaite
13.04.2012, 00:23
Все предельно просто.
1. Вырубаешь клиент и снова включаешь.
2. Ищешь ник (их будет десяток думаю).
3. Меняешь ник (в СЕ естественно).
4. Тот адрес, в котором будет записан ник, указанный под НР - есть требуемый тебе.

Если адресов с ником будет слишком много сделай так, смени у половины из них значение, если под НР значение изменилось - ищи в этой половине. Тоесть опять выдели половину и меняй значения. И так по кругу.

Ну а как найти смещение найденного адреса я думаю тебе понятно?

alegr
13.04.2012, 10:24
Я пробовал поменять все ники, но не сменился ни над головой, ни в статах. Я так понимаю, ник надо искать в Unicode? Если да, то как его правильно считывать? Пробовал считать первый попавшийся, у меня получается вот такая лабуда:
CCCC041C
CCCC0443
CCCC0440
CCCC0430
CCCC043C
CCCC0430
CCCC0441
CCCC0430
CCCC0000

выводил в файл по 1 букве на строчку. По идее, тут должно быть написано Мурамаса

Добавлено через 59 минут
Всё, разобрался, спасибо. Только абвгд отображается как *ЎўЈ¤
Но это я лучше в форуме С++ вопрос задам)

dmitry98
23.04.2012, 11:48
скажите пожалуйста что требует PWGTM 1.91? я использовал генератор и бессполезно. Искал ba через СЕ сделал до 17-ый пункт и ввел address ( в случай Dinmaite 09c1514) то же не получается. Помогите очень надо и как искать?

skew222
21.05.2012, 19:17
а подскажите, как находить смещения адреса. например нашли адрес хп и перезашли в игру, он естественно изменился. и прога уже не сможет считать и вывести его в нужное поле.

dwa83
21.05.2012, 22:18
а подскажите, как находить смещения адреса. например нашли адрес хп и перезашли в игру, он естественно изменился. и прога уже не сможет считать и вывести его в нужное поле.
Пример в первом посте. При поиске БА мы движемся от конечного значения к началу, и здесь же на каждом шаге фигурируют нужные смещения, например mov [esi+0000046C],ecx. То-есть при поиске БА мы находим ещё и нужные смещения.

skew222
21.05.2012, 22:43
Пример в первом посте. При поиске БА мы движемся от конечного значения к началу, и здесь же на каждом шаге фигурируют нужные смещения, например mov [esi+0000046C],ecx. То-есть при поиске БА мы находим ещё и нужные смещения.
а после того как узнал смещения например от твоего примера 46C.
baseadress=$0017CEA8;
WriteProcessMemory(hProcess,ptr(baseadress+46C),@v alue,s);

так будет вставляться? или подругому

dwa83
22.05.2012, 17:07
так будет вставляться? или подругому
Сначала нужно прочитать из base_adress без сложений офсетов, а потом к полученному значению прибавить первый оффсет(в примере темы последний оффсет, так как мы от последнего к первому двигаемся) и так далее. То есть если взять по теме все строчки типа mov [esi+0000046C],ecx то при поиске от значения HP до BaseAdress мы их находим в следующем порядке:

Сначала находим адрес самого HP, затем находим строчку(пункт 9) затем

mov [esi+0000046C],ecx
mov ecx,[edi+20]
mov edx,[ecx+1C]

После чего найден постоянный адрес(BA).
Итак, чтобы нам получить значение ХП, мы читаем сначала по адресу BA затем к полученному значению прибавляем 1C, опять читаем по получившемуся адресу, прибавляем 20, читаем, прибавляем 46C, читаем и получаем значение HP.
И не WriteProcessMemory а Read, мы ведь не записывать собрались а считывать)

Добавлено через 39 минут
Вот пояснения.
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
Допустим мы решили написать игру PerfectWorld, написали и решили в ней покапаться :)
Например в своей программе мы обьявили глобальную переменную-указатель на структуру. Затем динамически эту структуру в ходе выполнения проги создали. Адрес её расположения всегда разный, но указатель у нас показывает на её начало, и сам указатель всегда лежит по конкретному адресу от начала нашей проги. Этот адрес и есть BA. Считав из него значение, мы получим адрес начала нашей динамически созданной структуры. Эта структура в свою очередь состаит например из указателей на другие динамические структуры, например структуру локации(это к примеру) или ещё чего. Эти структуры тоже создаются динамически и адрес их начала мы можем узнать прочитав значение одного из полей нашей первой структуры. А адрес начала её мы знаем где лежит. Допустим вторым по счёту в нашей первой структуре хранится указатель на структуру перса, тоесть к адресу начала структуры мы прибавляем оффсет 04 и читаем значение, получаем адрес структуры перса. Итак все структуры динамически созданы, BA мы знаем, считываем оттуда адрес нашей структуры, к нему прибавляем 04 получаем уже адрес не начала структуры а адрес её второго поля, которое является указателем на структуру перса, теперь к адресу структуры перса прибавим нужный оффсет к примеру 46C и получим уже не адрес начала структуры перса, а адрес её поля, в котором лежит значение хп. Вроде повторяюсь уже..

skew222
30.05.2012, 18:47
все даже очень просто и понятно оказывается. щас решил попробовать создать програмку которая тупо считывает статы и выводит в текстовое поле. но наткнулся на проблему, параметры хп и мп он считал на ура, но все остальное СЕ уже не ищет а быть точнее смещения от основного адреса. чт делать подскажите

dwa83
30.05.2012, 20:35
чт делать подскажите
смотреть ЭТУ ([Ссылки могут видеть только зарегистрированные и активированные пользователи]) тему

Djouding
31.05.2012, 01:14
и вопросов станет еще больше ))

100255
03.07.2012, 22:43
Спасибо. Очень полезная информация, которую я долго искал, но никак немог найти. Но я так и непонял почему в некоторых местах написано что именно первый аддрес.
Например в п.12 и п.15
Ответе пожалуйста.

dwa83
05.07.2012, 15:39
Но я так и непонял почему в некоторых местах написано что именно первый аддрес.
Не всегда первый, там к примеру сказано, первый адрес может оказаться левым, по которому дальше не получится ничего отследить.

blackchaos
19.08.2012, 12:03
Находит такой адрес в хексе 000000. Хз что делать. клиент white tiger
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Геймeр
19.08.2012, 22:02
Находит такой адрес в хексе 000000. Хз что делать. клиент white tiger
Что искал - неппонятно. 96 ? Что искал, то и нашол.

blackchaos
19.08.2012, 22:12
Что искал - неппонятно. 96 ? Что искал, то и нашол.

искал базовый адрес по инструкции хп менял. в итоге получаю адрес который в хексе нули выдает и дальше поиск обламывается :wtf:

qwer7074
20.11.2012, 14:34
Для других игр так же искать?Пытаюсь найти для drakensang online.
Алгоритм действий:
хп-1839
Ищу 1839
Меняю хп и отсеиваю.
Остается 5 значений.
Беру первое (макс. хп).
Жму "Find out what writes to this address"
Там одна строка mov [edi+1c],esi
Нажимаю More information записываю оттуда edi=27891f30
ищу потом это значение, поиск дает 6 результатов.
Для первого выбираю "Find out what accesses to this address" реультатов 0
для второго:
cmp dword ptr[ebx],00
cmp dword ptr[ebx],00
cmp dword ptr[esi],00
mov eax,[esi]
cmp dword ptr[ebx],00
cmp dword ptr[ebx],00
cmp dword ptr[ebx],00
Куда дальше двигаться?(

nmartinez
26.07.2013, 08:04
Для других игр так же искать?Пытаюсь найти для drakensang online.
Алгоритм действий:
хп-1839
Ищу 1839
Меняю хп и отсеиваю.
Остается 5 значений.
Беру первое (макс. хп).
Жму "Find out what writes to this address"
Там одна строка mov [edi+1c],esi
Нажимаю More information записываю оттуда edi=27891f30
ищу потом это значение, поиск дает 6 результатов.
Для первого выбираю "Find out what accesses to this address" реультатов 0
для второго:
cmp dword ptr[ebx],00
cmp dword ptr[ebx],00
cmp dword ptr[esi],00
mov eax,[esi]
cmp dword ptr[ebx],00
cmp dword ptr[ebx],00
cmp dword ptr[ebx],00
Куда дальше двигаться?(
cmp dword ptr[ebx],00
cmp dword ptr[ebx],00
cmp dword ptr[esi],00
mov eax,[esi]
cmp dword ptr[ebx],00
cmp dword ptr[ebx],00
cmp dword ptr[ebx],00
могу лишь сказать что код игры писали китайцы, ибо зачем 5 раз подряд сравнивать регистр с нулем О.о
Меняю хп и отсеиваю.
Остается 5 значений.
Беру первое (макс. хп).
отсеивай пока не останется два. макс хп и хп. попробуй так поискать

Dinmaite
26.07.2013, 19:45
могу лишь сказать что код игры писали китайцы, ибо зачем 5 раз подряд сравнивать регистр с нулем О.о
А Вам не приходило в голову что эта проверка вовсе не последовательна, а взята из разных кусков кода?

nmartinez
27.07.2013, 16:25
Потом уже пришло. Но было поздно.

Алюша
17.09.2013, 01:32
15. Открылось окошко, и мы видим в нем несколько адресов, выбираем первый и щелкаем на More Information.
с этого момента ничего не появляется почему то.

Al_lord
18.09.2013, 20:45
с этого момента ничего не появляется почему то.

+1

homyak555
25.09.2013, 17:19
Тоже и у меня, 15 пункт открывает пустое окошко.

gamvlad
26.10.2013, 12:22
Ребят у меня скрины не открываются? Прошу прощение за нубство)

sizard
05.01.2014, 03:18
Спасибо за гайд! Но есть вопрос. Хочу чтоб бот собирал ресурс, например траву. Нашел статический адрес этой травы и как реализовать ее сбор персонажем?
Делаю бота для Forsaken world

scitelz
17.01.2014, 14:47
только вот немного непонятно одно...а как работать с текстовыми значениями, если имена мобов и игроков представлены как массив то цело-тельной строкой найти сразу по имени не получится, то есть искать по имени например "мегагеймер" нельзя...или как? То есть я допустим иду по адресу и смещениям к массиву мобов и хочу найти их имена...иии упираюсь...

Jigan777
30.01.2014, 09:21
когда жму "Find out what writes to this addres" процесс закрывается

zagib
03.06.2018, 09:31
Добрых дней уважаемые, спасибо за гайд, нашел базовый для фришки PW Online classic 1/3/6 x15 но PWgt Multi v 1.91 после ввода его пишет could not find offsets. Please enter base memory address again. базовый адрес 009В3ЕЕС, подскажите что не так?

388672
16.10.2018, 09:22
Что делать когда на оффе СЕ не может найти ни одно значение? Какое значение бы не искал, ничего не находит.

Тигрь
16.10.2018, 23:42
Что делать когда на оффе СЕ не может найти ни одно значение? Какое значение бы не искал, ничего не находит.

на офе защита от се. нужно делать обход защиты, естественно не бесплатно это будет.

Vladim543
24.01.2020, 01:32
то-есть, как вариант переименовать СЕ или окно самой игры ПВ? Или там такая защита, что надо пакеты перехватывать расшифровывать и свои отправлять?

"Unix
09.02.2020, 17:40
Заплачу денег, тому кто найдет оффсеты под мой клиент игры (1.5.5)


SendPacket = offsets
BA = offsets
BA_to_GA = offsets
GA_to_Player = offsets
Player_to_Name = offsets
Player_to_Inventory = offsets
Inventory_item_id = offsets
Inventory_item_count = offsets
Inventory_item_refine_lvl = offsets

Подробности в лс

andrew4
29.01.2024, 02:17
Для самых непонятливых есть замечательный ролик - [Ссылки могут видеть только зарегистрированные и активированные пользователи]
ну и начало тоже - [Ссылки могут видеть только зарегистрированные и активированные пользователи]