Находим адрес для GUI-функции PW

Всем привет.

В данной статье рассмотрим поиск адреса функции для работы с GUI игры. С помощью этой функции вы можете программно взаимодействовать с элементами игры: нажимать на различные кнопки, вводить текст в соответствующие поля и т.п.

Для поиска нам понадобится Ollydbg (http://www.ollydbg.de/).

Запускаем ПВ, заходим на персонажа, запускаем Олли.

Далее нам надо прицепить процесс PW к отладчику, а затем перейти в нужный нам модуль игры. Если это вызывает у вас затруднения, то из статьи Как найти walk-адреса для инжекта движения PW вы узнаете как это проделать. Позвольте не описывать под копирку все тоже самое, поэтому просто следуйте тамошним инструкциям.

Вот то, что должно у нас получиться:
Olly elementc module

Отлично, можем двигаться дальше.

Нажимаем правой кнопкой мыши в главном окне программы, переходим в меню Search for — Sequence of commands (или нажимаем Ctrl + S).

В окошке вводим последовательность команд, чтобы найти нужный нам участок кода из которого мы узнаем адрес.
Вводим:
NOP
NOP
NOP
PUSH EBX
PUSH ESI
MOV ESI,DWORD PTR SS:[ESP+C]
MOV EBX,ECX
PUSH EDI

sequence

Нажимаем «Find», а затем (при необходимости) Ctrl+L (продолжить поиск) пока не найдем следующий участок кода:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
PUSH EBX
PUSH ESI
MOV ESI,DWORD PTR SS:[ESP+C]
MOV EBX,ECX
PUSH EDI
MOV EDI,ESI
OR ECX,FFFFFFFF
XOR EAX,EAX
REPNE SCAS BYTE PTR ES:[EDI]

Участок кода бросается в глаза большим количеством NOP’ов и строкой OR ECX,FFFFFFFF.

Участок кода в Olly:
GUI Address

А теперь самое интересное:
адрес строки с командой «PUSH EBX» — и есть адрес GUI функции. Выделил на скрине эту строку.

В данном случае: GUI_Address = 0x98BC30

Всё просто.

Вы можете прокомментировать, либо оставить trackback со своего сайта.

Leave a Reply

Powered by WordPress