 |
Оффсеты GUI - Разработка ПО для Perfect World - Бюро разработчиков Zhyk.Ru: создание ботов, снифферов и прочих программ для Perfect World |
13.06.2012, 19:43
|
#1
|
|
|
|
Пехотинец
|
 Регистрация: 21.03.2012
 Сообщений: 83
 Популярность: 1178
 Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
|
Оффсеты GUI
[Значения могли измениться/сместиться]
Возможно кому-нибудь будет полезно. Оффсеты указаны для руофа, для других могут отличаться.
Структура GUI
(GUI+...)
Код:
+8C - указатель на начало массива окон верхнего уровня(WIN)
+АС - указатель на начало массива окон нижнего уровня(WIN)
+74 - указатель на структуру активного окна(WinStruct)
Основные поля структуры элемента массива окон (WIN+...)
Код:
+0 NextWin(указатель на следующий элемент массива)
+8 WinStruct(указатель на структуру окна)
Основные поля структуры окна (WinStruct+...)
Код:
+4C - WinName(указатель на строку-имя окна)
+90 - Visible(Видимое окно)
+98 - Win X Coord
+9C - Win Y Coord
+A0 - Win Width
+A4 - Win Height
+E8 - CurrentControlStructPtr(указатель на cтруктуру активного контрола)
+1C8 - CtrlArray(указатель на начало массива контролов окна)
Структура элемента в массиве контролов
Код:
+4 - указатель на следующий контрол в массиве
+8 - указатель на структуру контрола (CtrlStruct)
Структура контрола (CtrlStruct+...)
Код:
+18+0 - Ctrl_Name (ascii string)
+1C+0 - Ctrl_Command_Txt (ascii string) - Команда контрола
+20+0 - Ctrl_Sound_Path (ascii string) - Звук, проигрываемый при клике по контролу
+68 - BGR-цвет текста(цвет EditText)(DWORD)
+74(?) - Чекнутость переключателя типа RadioButton.
+84 - Левый отступ текста в пикселях от границы окна.
+88 - Верхний отступ текста в пикселях от границы окна.
+B8+0 - Caption (unicode string)
+BC+0 - Description (unicode string) полное описание предметов, скиллов, и тд, текст вплывающего описания любого контрола
+121 - Checked/Active (bool)
+134 - Верхний отступ текста в пикселях от границы контрола.
+13C - ItemIndex (номер выделенной строчки в листбоксе, отсчёт от нуля)
+144 - ScrollBarPosition(Значения от 0 до ScrolBarMaxPosition)
+148 - ScrolBarMaxPosition
+188 - EditTextLen(DWORD) (ограничивает передвижение курсора но не отрисовку текста)
+18С - Положение курсора в тексте EditText
+13FC+0 - EditText (unicode string) - Редактируемый текст в контроле типа Edit(поле ввода логина, пароля, строки чата)
Отдельное спасибо krukovis, за разьяснение ключевых оффсетов.
Некоторые замечания:
1)Прописав по оффсету +E8 - CurrentControlPointer(указатель на активный контрол) адрес нужного нам контрола, мы сделаем его активным, например поле ввода для логина/пароля. Далее ввод символов будет происходить именно в нём.
2)Прописав по оффсету +13FC(если контрол подразумевает ввод символов) адрес заготовленной нами строки текста, этот текст мгновенно появится в поле ввода. Так же работает со оффсетом +B8 (указатель на строку Caption), этим мы будем менять надписи на Button, Label и прочих.
3)Указатель на строку +1C+0 - Ctrl_Command_Txt, а так же указатель WinStruct на структуру окна, в котором этот контрол находится, мы можем передать в функцию работы с GUI, этим мы програмно будем например, жать на кнопки.
В ЭТОЙ теме выложена функция, с помощью которой можно программно выполнать команды GUI, используя оффсеты
+8 WinStruct(указатель на структуру окна) Адрес начала структуры окна
+1C - указатель на Ctrl_Command_Txt (ascii string) - Адрес текстовой команды контрола
Дополнительно:
тык| тык
________________
╔═╗
║ ˑ ˑ ╬ ╬
╚═╝
Последний раз редактировалось dwa83; 10.06.2014 в 18:10.
Причина: дополнение
|
|
|
3 пользователя(ей) сказали cпасибо:
|
|
16.06.2012, 09:44
|
#2
|
|
|
|
Рыцарь-капитан
|
 Регистрация: 07.10.2009
 Сообщений: 496
 Популярность: 2687
 Сказал(а) спасибо: 64
Поблагодарили 325 раз(а) в 105 сообщениях
|
Re: Оффсеты GUI
Из серии "до кучи":
+98 - Win X Coord
+9c - Win Y Coord
+a0 - Win Width
+a4 - Win Height
________________
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
|
|
|
21.06.2012, 22:09
|
#3
|
|
|
|
Рыцарь-капитан
|
 Регистрация: 07.10.2009
 Сообщений: 496
 Популярность: 2687
 Сказал(а) спасибо: 64
Поблагодарили 325 раз(а) в 105 сообщениях
|
Re: Оффсеты GUI
Переделывал релогин и вспомнил как я раньше фокус менял, чтобы логин и пароль вписывать.
Я записывал по этому смещению (раньше оно было +90) указатель на контрол и туда переходил фокус.
Теперь оно тут:
WinStruct+0x0e8 - указатель на контрол на котором фокус - CurrentControl.
________________
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
Последний раз редактировалось krukovis; 21.06.2012 в 22:15.
|
|
|
29.06.2012, 21:10
|
#4
|
|
|
|
Пехотинец
|
 Регистрация: 02.08.2009
 Сообщений: 57
 Популярность: 417
 Сказал(а) спасибо: 12
Поблагодарили 1 раз в 1 сообщении
|
Re: Оффсеты GUI
Может кто подсказать как получить текст из листбокса?)
|
|
|
30.06.2012, 02:20
|
#5
|
|
|
|
Пехотинец
|
 Регистрация: 21.03.2012
 Сообщений: 83
 Популярность: 1178
 Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
|
Re: Оффсеты GUI
________________
╔═╗
║ ˑ ˑ ╬ ╬
╚═╝
|
|
|
05.11.2012, 21:03
|
#6
|
|
|
|
Разведчик
|
 Регистрация: 08.10.2012
 Сообщений: 2
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Оффсеты GUI
Подскажите куда копать чтоб получить данные из listboxa ??
+13C - ItemIndex (номер выделенной строчки в листбоксе, отсчёт от нуля)
выдает индекс нормально, данные доложны быть в структуре самого окна или нужно искать смещение от +13С
если кто в теме поделитесь
|
|
|
16.11.2012, 14:51
|
#7
|
|
|
|
Пехотинец
|
 Регистрация: 21.03.2012
 Сообщений: 83
 Популярность: 1178
 Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
|
Re: Оффсеты GUI
________________
╔═╗
║ ˑ ˑ ╬ ╬
╚═╝
|
|
|
16.02.2013, 11:02
|
#8
|
|
|
|
Разведчик
|
 Регистрация: 15.08.2011
 Сообщений: 25
 Популярность: 10
 Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Оффсеты GUI
Нашел кто-нибудь решение по листбоксу? Хочется аукцион поковырять...
кстати нашел кое-что на elitepvpers.com ...
Полная строка из листбокса аукциона
GA+0x18+0x8+0x8c+0x8+0x208+0x168+ I*0x800 +0x0, wchar[CharMax]
Здесь если это первый в списке предмет, то I*0x800 принимает значение 0х0. а далее, соответственно, 0х800, 0х1000 и т.д.
Описание продаваемого итема
GA+0x18+0x8+0x8c+0x8+0x208+0x168+ I*0x800 + 0x5C+0x0, wchar[CharMax]
Вот здесь проблемка есть. Если речь идет о первом предмете то смещение:
GA+0x18+0x8+0x8c+0x8+0x208+0x168 + 0x5C+0x0, wchar[CharMax] дает корректное описание
а вот в последующем I*0x800 уже почему-то не работает. Получается как-то так:
GA+0x18+0x8+0x8c+0x8+0x208+0x168+ I*???? + 0x5C+0x0, wchar[CharMax]
Вот что вместо вопросов надо вставить?
Кое-что понял...
вместо I*???? + 0x5C надо вставить 0x5C+0х800 = 0х85с
таким образом, описание второго предмета в списке можно прочитать по адресу
GA+0x18+0x8+0x8c+0x8+0x208+0x168+ 0х85с +0x0, wchar[CharMax]
Последний раз редактировалось wajskopf; 16.02.2013 в 21:48.
|
|
|
01.10.2013, 11:03
|
#9
|
|
|
|
Пехотинец
|
 Регистрация: 20.08.2009
 Сообщений: 90
 Популярность: 173
 Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
|
Re: Оффсеты GUI
|
|
|
08.04.2014, 14:24
|
#10
|
|
|
|
Разведчик
|
 Регистрация: 04.11.2010
 Сообщений: 3
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Оффсеты GUI
Подскажите пожалуйста, как корректно осуществить заполнение логина/пароля, используя оффсет +13FC+0 - EditText (unicode string)
Собираю цепочку в CheatEngine, пытаюсь ввести логин. Он вводится, но заполняются сразу несколько полей
+B8+0 - Caption, +BC+0 - Description , +13FC+0 - EditText, а также тоже самое вводится и в пароль.
Если начать с пароля, то наоборот.
Проблема в том, что
если сначала в клиенте заполнить руками поля логина и пароля произвольными символами , а затем запустить "автологин" что бы тот ввел логин и пароль, то заполняются исключительно поля логина и пароля.
если в клиенте руками не вводить ничего и запустить "автологин", то когда "автологин" начинает заполнять поле логина, то заполняются логин, пароль. описание к логину, описание к паролю, заголовок логина, заголовок пароля и еще другие поля.
То же самое происходит если это делать в CheatEngine не испльзуя "автологин".
Последовательность действий:
1. делаю активным структуру где содержится контрол ввода логина
2. делаю активным контрол ввода логина
3. записываю данные
Каких действий не хватает.
P.S. Спасибо.
Последний раз редактировалось prizrak3003; 09.04.2014 в 09:34.
Причина: дополнение о проблеме
|
|
|
08.04.2014, 15:58
|
#11
|
|
|
|
Пехотинец
|
 Регистрация: 31.08.2010
 Сообщений: 64
 Популярность: 129
 Сказал(а) спасибо: 30
Поблагодарили 12 раз(а) в 7 сообщениях
|
Re: Оффсеты GUI
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
Подскажите пожалуйста, как корректно осуществить заполнение логина/пароля, используя оффсет +13FC+0 - EditText (unicode string)
Собираю цепочку в CheatEngine, пытаюсь ввести логин. Он вводится, но заполняются сразу несколько полей
+B8+0 - Caption, +BC+0 - Description , +13FC+0 - EditText, а также тоже самое вводится и в пароль.
Если начать с пароля, то наоборот.
|
|
 |
|
 |
|
Вначале нужно выделить память, потом туда записать свой текст, а затем записать указатель на эту память по нужному адресу. В вашем случае писать по смещению +13FC
В коде это выглядить так:
Код:
int text_address = WinApi.VirtualAllocEx(handle, 0, 2500, 0x1000, 0x04);
memory.WriteString_Unicode(text_address, "login");
memory.WriteInt32(control_ptr + 0x13FC, text_address);
________________
Спасибо.
|
|
|
01.05.2014, 08:12
|
#13
|
|
|
|
Разведчик
|
 Регистрация: 13.07.2011
 Сообщений: 22
 Популярность: 20
 Сказал(а) спасибо: 16
Поблагодарили 7 раз(а) в 6 сообщениях
|
Re: Оффсеты GUI
Чем отличаются окна верхнего уровня от окон нижнего уровня?
|
|
|
01.05.2014, 21:27
|
#14
|
|
|
|
Пехотинец
|
 Регистрация: 21.03.2012
 Сообщений: 83
 Популярность: 1178
 Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
|
Re: Оффсеты GUI
________________
╔═╗
║ ˑ ˑ ╬ ╬
╚═╝
|
|
|
17.07.2014, 00:27
|
#15
|
|
|
|
Разведчик
|
 Регистрация: 19.08.2011
 Сообщений: 25
 Популярность: 465
 Сказал(а) спасибо: 2
Поблагодарили 17 раз(а) в 9 сообщениях
|
Re: Оффсеты GUI
Кто-нибудь уже сталкивался с проблемой: при попытке "вытащить" невидимое окно путем замены адреса (+74 - указатель на структуру активного окна(WinStruct)) на адрес нужного окна и сделать видимым при помощи установки 1 по адресу +90, игра вылетает. Кто-то эту проблему как-то смог решить?
________________
Skype: ScriptoZ
ЗАПРОС АВТОРИЗАЦИИ=ИГНОР
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Оффсеты
|
WOLF9595 |
Общение разработчиков |
23 |
12.06.2012 03:26 |
оффсеты
|
саня питерский |
Вопросы и ответы, обсуждения |
3 |
25.01.2012 08:29 |
Оффсеты
|
wzhik |
Общение и обсуждение CrossFire |
0 |
19.02.2011 14:43 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 19:38.
|
 |