Набор инструментов для начинающего хакера

Набор инструментов для начинающего хакера

Лаборатория Хакера
Уверен, что бывало, когда твоя любимая программа запросила денег, или тебе просто интересно раскрывать чужие секреты? Тогда, думаю, стоит заняться реверс-инженерингом, а еще лучше - крэкингом. Думаешь, с чего начать? Наверное, лучше начать с обучения использованию стандартных инструментов крэкера. Чем мы сегодня и займемся.

А начинать необходимо всегда с простого, чтобы понять сложное. Для начала узнаем, чем защищена и защищена ли вообще программа или CD с игрушкой, как она шаманит с файловой системой, где следит в реестре. В этом нелегком деле поможет целый набор уже готовых программ.

PeiD (www.peid.tk)

Первоочередное дело данной программы - показать, на чем написан исследуемый файл, чем он упакован, если упакован вообще. Также мы увидим информацию о секциях файла и другие атрибуты. Имеется встроенный дизассемблер начала кода. Если считать стандартные плагины, то тут и универсальный распаковщик, и восстановление импорта, и криптоанализ. В общем, это вещь №1 на крэкерском рабочем столе.

RegShot

Что делать, когда нужно узнать, где в системном реестре шаманит платная программулина? Можно доверится REgMon'у или же ставить точки останова на обращение к реестру в отладчике. Но, по-моему, проще снять снимок реестра до и после определенной операции. Можно сделать снимок файловой системы и определенных папок. И, самое главное, можно сравнить все это, и тогда пред нами встанет отчет обо всех изменениях реестра и указанных папок. Думаю, больше слов не требуется - осталось запустить.

File Monitor

Иногда, однако, наши пакостники за считанные секунды создают временные файлы, а затем удаляют их. Тогда RegShot отходит на второй план и на его место вступает File monitor, который с частым обновлением показывает все обращения к файловой системе в данный момент. Главное - не упустить в быстро растущем списке свою программу и закрыть все, что только можно, перед запуском.

Restorator

Кто из нас не любит присваивать чужое? Там поменять имя автора в любимой программе, или же, наоборот, достать интересную картинку из жертвы. К твоим услугам лучший редактор ресурсов для таких дел - Restorator. После установки он встраивается в оболочку, и исправить файл можно кликнув по нему правой кнопкой и выбрав open with restorator. Все иконки/картинки/строки и прочие ресурсы с возможностью я я́ как на ладони.

PiDне могу заходить в вайб, но тут легко, соскучиласьс (www.protectionid.owns.it)

Что-то мы все о программах да о программах. Думаешь заняться пиратством, да вот какая-то защита не дает нормально скопировать диск? Хочешь узнать, что же это за напасть? Поручи дело PiD'у, простая, как PeiD - без комментариев.

Microsoft Spy++ (www.microsoft.com)

Замечательный шпион за API-вызовами и перехватчик сообщениями между приложениями от создателей Windows. Этот простенький шпион покажет тебе все взаимные зависимости окон твоей программы. Есть дельный совет: при уборке NAG'а или баннера хорошо посмотреть размер вышесказанного этим шпионом. А далее в дизассемблер и искать помещение размеров в стек... вроде как мы нашли процедуру построения нехорошей рекламы, а дальше - дело времени.


HEX-редакторы

Итак, мы рассмотрели выдающиеся утилиты дознания и мониторинга. Пришло время углубиться внутрь. HEX-редакторы, как понятно из названия - редакторы шестнадцатеричного кода, каким представлены все данные, хранящиеся на компьютере. Вещь, необходимая для быстрого поиска и (если необходимо) правки байт в исполняемой программе.

HexWorkShop (www.bpsoft.com)

Лучший в своем роде НЕХ-редактор, с ним может сравниться только WinHEx. Редактирование, расширенный поиск, работа с любой кодировкой, встроенный НЕХ-калькулятор для быстрых расчетов. Профессиональная версия редактора НЕХ-кодов файла.

Дизассемблеры


Целый класс программ, предназначенных для раскрытия исходного кода программы и представления его в виде ассемблерного листинга. Однако мы никогда не сможем получить достоверный и настоящий листинг программы, что связано хотя бы с тем, что дизассемблеры используют в качестве адресов вызовов процедур адреса памяти в текущее время, тем самым при таком подходе адреса могут быть заняты другой программой в данный момент, а также еще много отступлений, которые невозможно описать здесь. В целом же перед собой мы видим добротный ассемблерный код того, что делает программа. Без дизасма не обходится ни один крэкер нашего времени.

Hiew

Дизассемблер с возможностью редактирования кода, НЕХ-редактор с той же возможностью. Пожалуй, это основные отличительные черты данной DOS'овской утилиты. Порой редактирование кода в кустарных условиях - незаменимая вещь, да еще с распознаванием API-функций.

kWinDasm (www.nfans.net)

Старый добрый дизассемблер. Новичкам вполне подойдет. Этот старик переживет еще многих своих собратьев. Отличительных черт не имеет за исключением просто хорошей, стабильной работы качественного дизассемблера.

IDA (www.datarescue.com)

Интерактивный дизассемблер, если исключить его незнание русского языка, то он еще и уникальный в своем роде продукт. Советую всем. Это туча функциональных настроек, подсветка различных секций исполняемого файла, работа с ресурсами и подгружаемыми библиотеками, встроенный отладчик, развороты функций и трассирование переходов. Интерактивность дает возможность распознавания полиморфного кода. По всем параметрам очень продвинутый дизассемблер, листинг которого читается очень приятно.

Декомпиляторы

Среди языков программирования, некоторые (особенно те, что работают с виртуальными машинами), такие как Visual Basic, Borland C++ Builder, Delphi, оставляют в коде множество "мусора", меток, сообщений. Анализируя эти "остатки", декомпиляторы должны восстановить исходный код программы в первозданном виде. Это отнюдь не значит, что мы увидим все так, как было написано - такое невозможно. Но раскрыть код формы, показать обработчики событий, созданных программистом, и умение раскрывать программу на исходные файлы - это задача декомпилятора.

DeDe (www.dafixer.cjb.net)

Да, это так. Это действительно лучший декомпилятор Delphi-приложений. Если программист не думал о защите от декомпиляторов, то ты получишь не только дизассемблерный код программы. Код будет привязан к событиям, сделанным в Delphi. Также ты сможешь увидеть исходный код формы и ее собственной персоной. Пробуй и наслаждайся.


WiSdec

Замечательный декомпилятор инсталляционных скриптов. Возможно, ты никогда и не будешь заниматься взломом Install Sheild, поскольку защита на этом уровне встречается все-таки довольно редко. Однако пройти мимо было бы кощунством. Программа разбирает скрипт инсталляции по полочкам, и в недрах выявленного кода тебе, может, посчастливится найти заветный серийный номер, если немного подумаешь.

Отладчики


Боевой софт крэкера. Про то, что отладчик также является дизассемблером, можно было и не упоминать. Первостепенная задача отладчика (естественно, отладка :)) - пошаговое выполнение анализируемого кода, возможность установки прерываний программы в связи с определенными событиями. Особенное отличие отладчика от остальных программ: отладчик работает с программным кодом в памяти компьютера, а не на диске. Оно, в принципе, и понятно: как-никак программа запущена.

NuMega SoftIce (www.compuware.com)

Великий и могучий, чье название вызывает уважение у всех, кто смог установить его и поработать с ним. Отладчик режима ядра, входящий в состав Driver Studio. Главные плюсы - это загрузка до основных модулей операционной системы и возможность отладки абсолютно всех модулей. Это нулевое кольцо, а значит, высочайшие привилегии для отладки. Перехват критических ошибок системы и последующая отладка, вплоть до перехвата синего окна смерти. Естественно, работает только в текстовом режиме.

OllyDbg (www.home.t-online.de/home/Ollydbg)

Да, это тоже отладчик, но только режима пользователя. Ты скажешь, что это не круто, и скажешь зря. Конечно, SoftIce лучше, но иногда важна простота и дружественный интерфейс, что явно преобладает у полюбившейся крэкерским кругам "Оли" :). Из отличий можно упомянуть, что Olly хорошо использовать как достойный дизассемблер. Явное отличие - возможность самостоятельно загружать для отладки не только exe-, но и dll-файлы, что добавит огромный плюс новичку

Универсальные утилиты

Из универсальных утилит хочу выделить утилиты для получения снимков памяти, восстановления импорта, редакторов секций файлов и многих добавочных функций, чем все эти программы обладают в полной мере.

PETools (www.uinc.ru)

Наконец-то ты нашел OEP, зациклил на нем программу. Остается лишь сохранить снимок памяти с распакованной программой. Обратимся за помощью к отличной универсальной утилите от нашего соотечественника PETools. Правый клик на нашем процессе - и Full dump! Кроме того, у программы есть еще много удивительно полезных функций, мимо которых пройти невозможно. Это Break&Enter - команда, помогающая прерваться в SoftIce на точке входа в программу. Это свой редактор PE-файлов. Мы можем менять названия секций, атрибуты и многое другое. Из подобных PETools можно выделить LordPE by Yoda.

В общем, смотри - все увидишь и поймешь сам. А если что-то непонятно, то не забывай об авторе:3

Import Reconstructor

Наконец-то мы получили дамп распакованной программы. Вроде бы ничего не мешает нам исследовать ее, однако она даже не запускается. Да, дело в таблице импорта, которую при распаковке мы благополучно пр... потеряли :). Восстанавливать импорт программ призвана утилита Import Reconstructor. Открываем в нем запакованный файл, вводим найденные значения RVA и OEP, жмем Get Imports и (в зависимости от коэффициента кривизны рук), отсеяв невалидные записи, фиксируем их в дампе программы. Другой такой программы по восстановлению импорта, которая так же хорошо справляется с задачей, я назвать не могу. Уж извините, так сложились звезды, и его могущество - код.

Напоследок

Как? Ты уже сломал программу? И даже сделал свой первый крэк. И он наверняка валяется пустым файликом без имени и фамилии. Тогда флаг тебе в руки, и NFOmaker, и ему подобные. С помощью такой замечательной программы упрощается создание .nfo- и .diz-файлов, которые, несомненно, должны присутствовать в архиве с крэком. Что там писать – уже твое дело. Почитай чужие, если сам придумать не сможешь. В общем, до новых встреч. Буду надеяться, что к тому времени ты уже напишешь свой инструмент.


Report Page