|

[cracking: шаг первый]
Xakep, номер #043, стр. 043-036-3
Отдельный вид таких программ - различные мониторы (не путать с той штукой, которая стоит у тебя на столе и выводит изображение на экран). Монитор - это программа, отслеживающая некоторые действия, происходящие в системе. Например, работа приложений с реестром или с файлами.
Монитор обращений к реестру позволяет, как несложно догадаться, отслеживать открытие, создание, изменение и удаление ключей и параметров реестра. Причем можно задать фильтр на мониторинг лишь некоторых из этих функций, а также указать конкретное приложение (вызовы от других процессов будут выполняться, не попадая под контроль). Кроме того, можно отслеживать только успешно завершившиеся вызовы или те из них, которые вернули ошибку. Вот несколько таких программ: WXR (Win-eXpose-Registry), Registry Monitor, RegSpy. Каждая из них имеет свои особенности, но существенных отличий нет.
Принцип работы файлового монитора полностью аналогичен описанному выше. Только отслеживаются вызовы функций, предназначенных для создания, чтения, записи, изменения, удаления и поиска файлов и каталогов. Наиболее распространенные программы такого рода: WXI (Win-eXpose-IO), File Monitor. В отличие от них, утилита Disk Monitor for Windows NT/2K отслеживает обращения к жестким дискам на низком уровне (на уровне секторов). Это бывает полезным для взлома некоторых специфических защит.
Мониторы файловой системы и реестра являются частными случаями других программ - API мониторов, предназначенных для отслеживания любых вызовов Win32 API. Например, API Spy 32, API Monitor. В них также можно задать фильтр на отслеживание только некоторых функций в нужном процессе. Однако их использование лишь в редких случаях оказывается оправданным. Зачастую, если возникает потребность отловить вызовы конкретной функции, будет более продуктивно воспользоваться полноценным отладчиком.
Иногда бывает нужно не внести изменения в сам код программы, а только исправить какие-либо надписи, заменить изображения и т.д. Например, для того, чтобы русифицировать чужую программу. В этом случае не обойтись без редактора ресурсов. Они входят в поставку практически всех современных компиляторов. Но их возможности обычно ограничены. Есть и более функциональные: Resource Hacker, Restorator, Resource Scrutator. Последний, в частности, позволяет выдергивать ресурсы из активных процессов, находящихся в памяти. Кроме того, этот редактор распознает огромное количество форматов, которые не поддерживаются стандартными редакторами ресурсов.
Самый самый софт
Ну а теперь перейдем к самому главному - чем пользуются для исследования кода программы. Как я уже говорил, основные инструменты крэкера - это отладчик и дизассемблер. Отладчик позволяет динамически изучать программу в ходе ее выполнения. Дизассемблер является статическим средством исследования. Он просто преобразует исполнимый файл в исходный вид на языке ассемблера. Обратное ассемблирование такого исходника маловероятно, но в нем можно найти нужный кусок программы и проанализировать логику выполнения интересующих тебя процедур.
Назад на стр. 043-036-2 Содержание Вперед на стр. 043-036-4
|