Боевой комплект реверсера
[ Вступление ]
По предложению Склифа я решил написать маленький обзор софта и нужных утилит для реверсера.
Новички в деле крэкера путаются в разнообразии софта, не знают что скачать и как использовать, а также
вообще зачем эти утилиты нужны. Сегодня я постараюсь ввести их в курс дела, чтобы не было непоняток.
Итак, в нашем арсенале нам понадобятся:
Отладчик - чтобы отслеживать работу программы на низком уровне в реальном времени.
Дизассемблер - чтобы смотреть ассемблерный код программы.
Пакеры/Анпакеры - чтобы паковать и распаковывать программу автоматически.
Утилита для работы с PE - чтобы знать "who is who"
HEX редактор - чтобы патчить байты
API шпион - чтобы отслеживать API функции программы
Монитор реестра - чтобы отслеживать кто куда что пишет в реестр
Монитор файлов - чтобы смотреть создаваемые файлы
Программа создания кряков - чтобы не писать вручную кряки
IDE для программирования - чтобы писать вручную кряки
[ Отладчик ]
Для отладки я использую хороший низкоуровневый отладчик OllyDbg с набором плагинов.
Советую использовать сборку от Diablo, в ней совмещен отличный набор плагинов и приятный глазу дизайн.
Итак, скачать сборку можно здесь:
https://rapidshare.com/files/66822828/OllyDbg_20v1.10_20Diablo.rar
А теперь мини - F.A.Q. по использованию олльки.
1. Открыть файл для отладки: F3->Выбрать нужный файл или File->Attach->Выбрать нужный процесс->Attach или File->Open->Выбрать нужный файл->Open
2. Поставить бряк в дизассемблерном листинге: ЛКМ на нужном участке->F2
3. Снять бряк: ЛКМ на месте с бряком->F2
4. Поставить бряк на функцию: Ctrl+N->Ищем функцию->ПКМ->Toogle BreakPoint On Enter
5. Поставить бряк через commandline: bpx Function
6. Смотреть список доступных строк: ПКМ->Search For->All Referenced Text Strings
7. Трассировка с заходом в функцию: F7, без захода в функцию F8
8. Исправить код на свой: Два раза щелкнуть на коде (или 1 раз щелкнуть и нажать пробел)->Изменить код->Enter
9. Изменить регистр: Два раза кликнуть на регистре->Изменить значение->Enter
10. Бряк на память: bpm 31337
Как научиться хорошо пользоваться Olly для реверсинга, можно прочитать в следующей статье:
https://xakername.ifolder.ru/7558689
[ Дизассемблер ]
Для получения ассемблерного кода программы я использую W32Dasm. Достаточно хороший инструмент, подойдет для дел средней сложности.
Скачиваем здесь:
https://wasm.ru/baixado.php?mode=tool&id=178
Опять таки мини - F.A.Q.:
1. Открыть файл для дизасма: File->Open File to Disassemble
2. Посмотреть список импортируемых функций программы: На панеле инструментов нажать List and Search for Imported Modules and Functions
3. Посмотреть список экспортируемых функций программы: Lists and Search for Exported Functions
4. Посмотреть список строк в программе: List and Search for String Data References in Disassembly
5. Перейти на начало кода: Sets the Hightlighted Text Bar to the Start of the Code Listing
6. Перейти на Entry Point: Sets the Highlighted Text Bar to the Program Entry Point Code
7. Перейти на страницу в листинге: Sets Disassembler Screen Text to Top of Specified Page
8. Перейти на адрес: Sets the Highlighted Text Bar to Specified Code Offset
9. Управление условными переходами и вызовами: Нажать JMP для прыжка, RET для возврата к условному переходу CALL для перехода к функции, RET для возврата обратно.
10. Посмотреть в hex: Hex Listing of Code if Code Location is top line
В остальном я надеюсь будет легко разобраться самим.
[ Пакеры/Анпакеры ]
Пакеры изначально были задуманы для уменьшения размера бинарников, но теперь они также служат средством защиты от реверсеров. Самые знаменитые пакеры это AS-Pack, Armadillo, PE Compact, UPX, FSG и многие другие.
Естественно, чтобы получить нормальный ассемблерный код программы, нам нужно для начала распаковать ее. Для распаковки можно задействовать руки либо специальные программы для автоматической распаковки.
Есть официальные распаковщики, а есть распаковщики от сторонних авторов. Я лично использую Quick Unpack, как один из самых универсальных и удобных распаковщиков.
1. Жмем Open File и выбираем нужный файл.
2. Поиск Original Entry Point OEP->>->Выбираем метод
3. Жмем Full Unpack. Далее спросит сохранить дамп или нет, жмем Save.
Скачать пакеры можно здесь:
https://wasm.ru/toollist.php?list=8
И анпакеры здесь:
https://wasm.ru/toollist.php?list=6
[ Утилита для работы с PE ]
Нам частенько нужно будет узнать на чем написана программа, ее EP, и прочие интересности внутреннего устройства утилиты. Для этого нам помогут различные программы, например PEiD и LordPE.
Думаю, интерфейс интуитивно понятный, и не требует разъяснений.
Также хороша утилита PE Tools.
Скачать все можно здесь:
https://wasm.ru/baixado.php?mode=tool&id=67
https://wasm.ru/baixado.php?mode=tool&id=124
https://wasm.ru/baixado.php?mode=tool&id=44
[ HEX редактор ]
Для правки пары байт, можно использовать конечно и универсальный Olly, но специально для редактирования байт был создан HiEW - Hackers View.
Программа сама по себе не сложная, освоиться в ней тоже легко. Существует возможность редактирования hex кода, ассемблерного кода и просмотр. Для перехода из одного в другой режимы, достаточно пары клавиш.
Скачать HiEW:
https://wasm.ru/baixado.php?mode=tool&id=112
Также можно использовать и другие hex редакторы типа WinHEX:
https://wasm.ru/baixado.php?mode=tool&id=24
[ API шпион ]
API шпионы нужны для того, чтобы отслеживать, какими API функциями пользуется программа.
В качестве шпионов можно использовать APISpy32, APIMonitor, API Spy 2.5 и прочими.
Ну тут тоже разъяснять нечего, загружаем программу и смотрим список доступных функций.
Скачать:
https://www.cracklab.ru/download скачать.php?action=list&n=MTU=
Kerberos:
https://www.cracklab.ru/download скачать.php?action=get&n=NTcw
[ Монитор реестра ]
Многие программы заносят сведения о регистрации (имя, пароль, остаток возможных запусков в триале) в реестр. Отследить что кто куда писал в нем вручную очень сложно, и на помощь приходят различные утилиты, как например RegMon от Марка Руссиновича. Данная утилита показывает в реальном времени какая программа отправляет какой запрос в какую ветвь реестра, что позволяет нам определить собственно что она делает.
Скачать:
https://www.cracklab.ru/download скачать.php?action=get&n=MzU=
[ Монитор файлов ]
Опять таки нам когда либо придется узнать, что программа вытворяет на вашем жестком диске. Для этого послужит еще одна небезызвестная утилита от Марка Руссиновича - FileMon.
Способ ее использования аналогичен RegMon'у.
Скачать:
https://www.cracklab.ru/download скачать.php?action=get&n=NDA=
[ Программа создания кряков ]
Конечно же, всякий уважающий себя крэкер должен создавать кряки сам. Но иногда бывают такие моменты, когда писать что-то очень западло. В такие моменты нас выручат различные утилиты автоматического создания кряка/кейгена/еще какой то заразы. Я использую DUP2 от Diablo, вы можете что то еще.
Скачать можно здесь:
https://diablo2oo2.di.funpic.de/stuff/dup2.beta.rar
Использовать легко. Сначала создаем New Project, задаем нужные параметры проекта, затем Add, выбираем тип будущей утилиты, вбиваем нужны настройки, жмем Create Loader/Patch, и вуаля! - кряк готов.
[ IDE для программирования ]
Для создания кряков нам понадобится знать какой либо язык программирования. Зачастую кряки пишутся на Delphi, Assembler, C/C++, поэтому сделаем краткий обзор возможных сред разработки.
Если вы пишете на Delphi, то самое лучше решение это использовать Borland Delphi IDE.
Для программистов на C/C++ подойдет Dev-Cpp:
Скачать ее можно отсюда:
https://bloodshed.net/devcpp.html
Ну а для ассемблерщиков раем будут FASM & MASM.
Подробнее по ним можно почитать в этом отрывке из блога:
https://devprog.wordpress.com/2008/10/15/как-выбрать-себе-ассемблер-некоторые/
А скачать здесь:
https://www.cracklab.ru/download скачать.php?action=list&n=NjU=
[ ZloY'ключение ]
Ну вот так сказать основной набор программ и утилит реверсера на все случаи жизни. Если мне будут попадаться интересные экземпляры ПО для крэкера, я буду обновлять эту тему. С вами был Хел, всем удачи =)
(c) Хел, specially for prizrak.ws CommunitY
- Подпись автора
...если долго вглядываться в Бездну, то она начнет вглядываться в Вас...