Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация

Оффсеты GUI

-

Разработка ПО для Perfect World

- Бюро разработчиков Zhyk.Ru: создание ботов, снифферов и прочих программ для Perfect World

Ответ
 
Опции темы
Старый 13.06.2012, 20:43   #1
 Пехотинец
Аватар для dwa83
 
dwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личность
Регистрация: 21.03.2012
Сообщений: 83
Популярность: 1178
Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
 
По умолчанию Оффсеты GUI

[Значения могли измениться/сместиться]
Возможно кому-нибудь будет полезно. Оффсеты указаны для руофа, для других могут отличаться.

Структура GUI
Код:
GA+18+08
(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 в 19:10. Причина: дополнение
  Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
388672 (27.11.2018), =[Rush]= (18.01.2017), wajskopf (16.02.2013)
Старый 16.06.2012, 10:44   #2
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: Оффсеты GUI

Цитата:
Сообщение от dwa83Посмотреть сообщение
Основные поля структуры окна (WinStruct+...)
Код:
+4C  - WinName(указатель на строку-имя окна)
+90  - Visible(Видимое окно)
+1C8 - CtrlArray(указатель на начало массива контролов окна)

Из серии "до кучи":

+98 - Win X Coord
+9c - Win Y Coord
+a0 - Win Width
+a4 - Win Height
________________
--------------------------------------------
PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
[for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
  Ответить с цитированием
Старый 21.06.2012, 23:09   #3
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: Оффсеты GUI

Переделывал релогин и вспомнил как я раньше фокус менял, чтобы логин и пароль вписывать.
Я записывал по этому смещению (раньше оно было +90) указатель на контрол и туда переходил фокус.
Теперь оно тут:
WinStruct+0x0e8 - указатель на контрол на котором фокус - CurrentControl.
________________
--------------------------------------------
PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
[for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------

Последний раз редактировалось krukovis; 21.06.2012 в 23:15.
  Ответить с цитированием
Старый 29.06.2012, 22:10   #4
 Пехотинец
Аватар для ToRcH2565
 
ToRcH2565 скоро будет известенToRcH2565 скоро будет известенToRcH2565 скоро будет известенToRcH2565 скоро будет известенToRcH2565 скоро будет известен
Регистрация: 02.08.2009
Сообщений: 57
Популярность: 417
Сказал(а) спасибо: 12
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Оффсеты GUI

Может кто подсказать как получить текст из листбокса?)
  Ответить с цитированием
Старый 30.06.2012, 03:20   #5
 Пехотинец
Аватар для dwa83
 
dwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личность
Регистрация: 21.03.2012
Сообщений: 83
Популярность: 1178
Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
 
По умолчанию Re: Оффсеты GUI

Цитата:
Сообщение от ToRcH2565Посмотреть сообщение
Может кто подсказать как получить текст из листбокса?)

Нужно ковырять дальше структуру контрола. Мне кажется давольно сложным это занятие, так как листбоксы и их оффсеты отличаются в зависимости от вида листбокса. Например, для листбокса ближайших игроков и листбокса квестов оффсет положения вертикального бегунка отличаются, так же может быть и с указателем на элементы списка. Самый интересный оффсет - это тип контрола, где он - хз. Хотя для некоторых листбоксов, например как выбор сервера, выделенный элемент можно считать из поля Caption этого контрола(со слов другого участника форума), а сделать его выделенным можно по оффсету +13C - ItemIndex.
________________
╔═╗
ˑ ˑ ╬ ╬
╚═╝
  Ответить с цитированием
Старый 05.11.2012, 21:03   #6
 Разведчик
Аватар для AHTOLLlKA
 
AHTOLLlKA никому не известный тип
Регистрация: 08.10.2012
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Оффсеты GUI

Подскажите куда копать чтоб получить данные из listboxa ??
+13C - ItemIndex (номер выделенной строчки в листбоксе, отсчёт от нуля)
выдает индекс нормально, данные доложны быть в структуре самого окна или нужно искать смещение от +13С
если кто в теме поделитесь
  Ответить с цитированием
Старый 16.11.2012, 14:51   #7
 Пехотинец
Аватар для dwa83
 
dwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личность
Регистрация: 21.03.2012
Сообщений: 83
Популярность: 1178
Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
 
По умолчанию Re: Оффсеты GUI

Цитата:
Сообщение от AHTOLLlKAПосмотреть сообщение
или нужно искать смещение от +13С

Могу заверить что точно не от него
________________
╔═╗
ˑ ˑ ╬ ╬
╚═╝
  Ответить с цитированием
Старый 16.02.2013, 11:02   #8
 Разведчик
Аватар для wajskopf
 
wajskopf никому не известный тип
Регистрация: 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, 12:03   #9
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
 
По умолчанию Re: Оффсеты GUI

Цитата:
Сообщение от dwa83Посмотреть сообщение
+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(поле ввода логина, пароля, строки чата

возможно +7A байт отвечающий за доступность кнопки.
  Ответить с цитированием
Старый 08.04.2014, 15:24   #10
 Разведчик
Аватар для prizrak3003
 
prizrak3003 никому не известный тип
Регистрация: 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 в 10:34. Причина: дополнение о проблеме
  Ответить с цитированием
Старый 08.04.2014, 16:58   #11
 Пехотинец
Аватар для Nek1t
 
Nek1t на правильном путиNek1t на правильном пути
Регистрация: 31.08.2010
Сообщений: 64
Популярность: 129
Сказал(а) спасибо: 30
Поблагодарили 12 раз(а) в 7 сообщениях
 
По умолчанию Re: Оффсеты GUI

Цитата:
Сообщение от prizrak3003Посмотреть сообщение
Подскажите пожалуйста, как корректно осуществить заполнение логина/пароля, используя оффсет +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);
________________
Спасибо.
  Ответить с цитированием
Старый 09.04.2014, 12:26   #12
 Разведчик
Аватар для prizrak3003
 
prizrak3003 никому не известный тип
Регистрация: 04.11.2010
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Оффсеты GUI

Не получается корректно записать +13FC+0 - EditText
Использую только CheatEngine 6.3

Содержимое ячеек клиента после запуска
URL=http://www.radikal.ru][Ссылки могут видеть только зарегистрированные пользователи. ][/URL]

Вводим с помощью CheatEngine 6.3 значение в EditText логина
Структура видима, активна, активный контрол ввода логина
URL=http://www.radikal.ru][Ссылки могут видеть только зарегистрированные пользователи. ][/URL]

Содержимое ячеек после ввода логина с помощью CheatEngine 6.3 в EditText
URL=http://www.radikal.ru][Ссылки могут видеть только зарегистрированные пользователи. ][/URL]

Содержимое ячеек клиента, после ввода логина традиционным способом
URL=http://www.radikal.ru][Ссылки могут видеть только зарегистрированные пользователи. ][/URL]

Как правильно нужно, подскажите пожалуйста.

P.S. Спасибо.

Последний раз редактировалось prizrak3003; 09.04.2014 в 17:58.
  Ответить с цитированием
Старый 01.05.2014, 09:12   #13
 Разведчик
Аватар для FriendsKenny
 
FriendsKenny на правильном пути
Регистрация: 13.07.2011
Сообщений: 22
Популярность: 20
Сказал(а) спасибо: 16
Поблагодарили 7 раз(а) в 6 сообщениях
Отправить сообщение для FriendsKenny с помощью Skype™
 
По умолчанию Re: Оффсеты GUI

Чем отличаются окна верхнего уровня от окон нижнего уровня?
  Ответить с цитированием
Старый 01.05.2014, 22:27   #14
 Пехотинец
Аватар для dwa83
 
dwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личность
Регистрация: 21.03.2012
Сообщений: 83
Популярность: 1178
Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
 
По умолчанию Re: Оффсеты GUI

Цитата:
Чем отличаются окна верхнего уровня от окон нижнего уровня?

Если просто, то окна верхнего уровня - это окна типа "окно игры", "окно выбора перса", "окно логина", а нижнего уровня - это различные мелкие окна типа "окно инвентаря", "окно чата" и т.п.(или наоборот), но суть такова.
________________
╔═╗
ˑ ˑ ╬ ╬
╚═╝
  Ответить с цитированием
Старый 17.07.2014, 01:27   #15
 Разведчик
Аватар для ukurenijboter
 
ukurenijboter скоро будет известенukurenijboter скоро будет известенukurenijboter скоро будет известенukurenijboter скоро будет известенukurenijboter скоро будет известен
Регистрация: 19.08.2011
Сообщений: 25
Популярность: 465
Сказал(а) спасибо: 2
Поблагодарили 17 раз(а) в 9 сообщениях
Отправить сообщение для ukurenijboter с помощью Skype™
 
По умолчанию Re: Оффсеты GUI

Кто-нибудь уже сталкивался с проблемой: при попытке "вытащить" невидимое окно путем замены адреса (+74 - указатель на структуру активного окна(WinStruct)) на адрес нужного окна и сделать видимым при помощи установки 1 по адресу +90, игра вылетает. Кто-то эту проблему как-то смог решить?
________________
Skype: ScriptoZ
ЗАПРОС АВТОРИЗАЦИИ=ИГНОР
  Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оффсеты WOLF9595 Общение разработчиков 23 12.06.2012 04:26
оффсеты саня питерский Вопросы и ответы, обсуждения 3 25.01.2012 08:29
Оффсеты wzhik Общение и обсуждение CrossFire 0 19.02.2011 14:43

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 10:56.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net