Поиск адреса для инжекта автоатаки в PW

Приветствую всех.

В этой небольшой статье мы разберем с вами способ нахождения адреса, по которому мы и будем производить инжект автоатаки.

Кто-то использует автоатаку через пакеты. Но и инжектный способ имеет право на существование. Его и рассмотрим.

Для начала сам инжект. На момент публикации данной статьи он полностью рабочий и выглядит так:

pushad
mov edx, address
call edx
popad

где вместо address — шестнадцатеричный адрес вашего клиента игры, который мы и будем искать ниже.

Для поиска нам вновь понадобится ollydbg (http://www.ollydbg.de/). Если вы не знаете как прицепить к нему клиент игры и войти в модуль elementc, то перейдите к статье Как найти walk-адреса для инжекта движения PW и прочтите первые шаги.

Прицепили клиент, перешли в нужный модуль. Получили такой результат:
Olly elementc module

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

В окне для поиска вводим команды:
NOP
NOP
NOP
NOP
NOP
NOP
PUSH ESI
PUSH 1

sequence

Жмем Find.
firstscan

Ищем блок искомых команд, после которых идет вызов подпрограммы (Call).

Жмем Ctrl + L (искать далее с теми же параметрами поиска).

secondscan

Теплее. Call следует за нашим блоком команд, которые мы указали в поиске. Но это не то. Куча заNOPленных строк. В искомом участке кода их меньше.

Ctrl + L. Нашли новый участок кода.

third scan

Адрес команды PUSH ESI — и есть искомый адрес для инжекта функции автоатаки. То есть 0x7C5470.

Как проверить еще до момента инжекта, что это действительно он?

Брейкпоинтом. То есть мы говорим отладчику: «Друг, меня вот эта команда интересует. Если вдруг программа (игра) решит выполнить её, то ты скажи мне об этом!». Если эта команда начнет выполняться, то отладчик укажет нам на это, а игру поставит на паузу (заморозит).

Поставим брейкпоинт на команду PUSH ESI и посмотрим, начнет ли игра её выполнение, если мы попробуем пнуть кого-нибудь автоатакой.

Выделяем в Olly строку PUSH ESI и нажимаем клавишу F2. Вы увидите, что адрес 7C5470 подсветился красным. При срабатывании мы установили на него точку останова программы.

breakpoint

Переходим в игру и дважды кликнем на каком-нибудь мобе/персе, чтобы перс побежал его атаковать автоатакой.

После попытки удара Олли вылезет на первый план, а справа снизу увидим надпись Paused на желтом фоне. Сработал брейкпоинт, окно с игрой заморожено.

brealpointenabled

Таким образом мы видим, что данный адрес имеет непосредственное отношение к автоатаке, и мы не ошиблись. Нажмем F9, чтобы разморозить окно ПВ, иначе нас дисконнектнет. Нажмем F2 еще раз на строке с командой PUSH ESI, чтобы снять брейкпоинт.

Plugins — Detachme — Detachme, чтобы отцепить Олли от игры без закрытия процесса последней.

Таким образом, наш инжект автоатаки примет окончательный вид:

pushad
mov edx, 7C5470
call edx
popad

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

Leave a Reply

Powered by WordPress