и оттягиваем монстров по полной,

Рисунок 8 определение идентификатора процесса (PID) при помощи диспетчера задач
Запускаем нашу утилиту и оттягиваем монстров по полной, то есть не по-детски. При быстрой стрельбе патроны слегка убывают, но тут же вновь восстанавливаются в исходное значение. Красота! Но держать резидента постоянно загруженным в памяти — не красиво и совсем не по-хакерски.

Рисунок 9 с автопатчером количество патронов застывает на отметке 66
Настоящие мыщъх'и правят машинный код программы так, чтобы патроны (жизни, здоровье) не убывали. Код, обращающийся к ячейке с патронами, можно найти двояко: по перекрестным ссылкам и через аппаратную точку останова. Первый способ ориентирован на дизассемблер и вообще говоря не очень надежен, второй — на отладчик и срабатывает в 100% если, конечно, программа дружит с soft-ice.
Начнем с перекрестных ссылок. Загружаем dumped_1.exe в IDA PRO и дождавшись, когда дизассемблирование завершится, переходим по адресу 56AF28h (<g>, "0x56AF28") и смотрим — удалось ли ей восстановить перекрестные ссылки или нет. Ага! Есть две перекрестные ссылки: одна на чтение, другая — на запись.
.data:0056AF28 dword_56AF28 dd 32h ; DATA XREF: .text:004615AA^r
.data:0056AF28 ; .text:00461711^w
Листинг 4 IDA PRO нашла две перекрестных ссылки к ячейке с патронами одна из которых на запись (она выделена полужирным)
Переходим к той ссылке что на запись (в данном случае это .text:00461711h)и видим следующий код:
.text:00461707 mov dword_575BB8, 1
.text:00461711 mov dword_56AF28[ecx], eax
.text:00461717 mov dword_575BBC, eax
Листинг 5 код, обращающийся к "патронной" ячейке
Ни хрена не понятно что тут, зачем и куда! К тому же ячейка 56AF28h адресуется через регистр ECX, то есть используется в качестве базового указателя.
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий