Встроенный отладчик 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
|