Встроенный отладчик WGC

_____ Чтобы не искать каждый раз, какое либо значение (и вообще не загружать wgc), можно изготовить патч или трейнер. Для этого в программу встроена поддержка аппаратной отладки.

_____ Ее возможности сводятся к установке точке прерывания на адреса данных и кода. В первом случае можно определить, по какому адресу находится команда, которая обращается к данным находящимся по этому адресу. Во втором, обращается ли процессор к команде по этому адресу.
_____ Замечу что WGC не предназначен для взлома защиты программы то копирования, и обхода ограничений trial версий. Он использует стандартные средства отладки Windows и не может подобраться к процессам, которые легко защищаются стандартными же средствами WinAPI32. В любом случае как и при использовании любого другого отладчика, вся ответственность за совершаемые действия ложатся на пользователя. В принципе если вы разрабатываете, какую либо защиту программ, wgc можно использовать для тестирования этой защиты.
_____ В отладчике wgc можно установить до четырех точек прерывания (используя четыре регистра отладки). Для этого надо выбрать условие, которое задается флажками (W R C), где W (write) означает точку прерывания на изменение данных по указанному адресу, R (read) на обращение к данным, C (call) на выполнение команды. Адрес можно извлечь из вкладки Cheat с помощью кнопки ">> Debug", или набрать вручную.
_____ Например, найдено число денег в игре по адресу $588371. Этот адрес вводится в поле первой точки прерывания, напротив поля устанавливается флажок W. После чего нажимается кнопка Breakpoints, и адрес передается в контекст процесса. Можно переключится в игру, и изменить значение, потратив немного денег. Переключившись в окно отладчика можно увидеть, что найдено несколько адресов. Можно практически сразу определить искомый, для чего раскрываются все адреса, и просматривается характер изменения данных. Последние десять значений, которые записывает команда, находятся в узле ALL. Количество срабатываний команды в узле CNT.
_____ После того как найден искомый адрес, можно посмотреть какие байты кода располагаются по этому адресу - сделать дамп памяти. Эти байты потом с помощью hview (qview) находятся в исполняемом файле, после чего просматривается дизассемблированный код программы. Найденый адрес указывает на команду следующую за той которая изменяет или обращается к данным. Поэтому нужно всего лишь проанализировать логику изменения данных, и исправить ее.
_____Типичный пример:
______1. mov eax, [ds:087723h + edi]
______2. sub eax, ecx
______3. mov [ds:87723h + edi], eax
_____ Команда что изменила значение денег находится на третьей строчке, а изменить лучше всего ту что находится на второй, например на
"add eax, ecx", после чего игра будет вам справедливо доплачивать за каждую покупку ;-). Конечно если игра сетевая и разработчик постарался ее защитить, так просто ничего не выйдет.
_____
_____В отладчике есть дополнительные флажки:
______Handle Events - заставляет обрабатывать исключения.
______Останов - при срабатывании точки прерывания отладчик приостанавливает программу до нажатия кнопки Run или Ctrl-F9.
______Лог трассировки - при срабатывании точки прерывания в Messages записывается его адрес, и содержимое регистров.
______Вопросы и пожелания по работе отладчика отправляйте мне на мыло: alpet@hotmail.ru

HOME



Hosted by uCoz