Вступление....9
О пользе реверсинга....9
Зачем нужен реверсинг....10
О чем эта книга....11
Заключение к вступлению....12
Глава 1....13
0x00f13 О коде, инструментах и крякмиксах....13
Основы реверсинга....13
Регистры и стек....13
Флаги....16
Инструкции....18
Режимы адресации....20
Реальный режим....21
Защищенный режим....21
Многосегментная модель памяти....21
Длительный режим (Long Mode)....22
О реверсинге ....22
Ассемблер и компиляторы....22
Отладчики и дизассемблеры....24
Только виртуализация....26
Основы реверсинга, начинаем ломать....26
О патчинге....26
Подведем промежуточные итоги....30
Пишем кейген....31
Виды механизмов защиты....31
Разбор крякми ....32
Пишем кейген....35
Заключение....41
0x06f16 Переполняем и эксплуатируем....42
Переполнение буфера....42
0x05f1b Забираемся в чужие EXE’шники....70
Инъекции кода в выполнимые файлы....70
Суть проблемы....43
Подопытный код....44
Методы поиска уязвимостей....45
Метод белого ящика....45
Метод серого ящика ....46
Метод черного ящика....48
Фаззинг....48
Подключаем отладчик....49
Готовый шелл-код....59
Прямой и обратный шелл....60
Генерируем прямой шелл....62
Генерируем обратный шелл....64
Заключение....69
0x04704 Свой код среди чужого....100
Инъекции процессов в Windows ....100
Не только расширение.......71
MZ и другие....72
Сигнатура....72
Структура....72
Таблица импорта....73
Таблица экспорта....73
Таблица перемещений....73
Следы компиляторов....75
Прячемся в «пещере кода» ....84
Заключение....99
Байты плохие и очень плохие....101
Пишем инжектор....102
Эксплуатируем....104
DLL-инъекция кода ....106
Динамические библиотеки....106
Создаем свою DLL....106
Отражающая DLL-инъекция ....109
Учимся отражать....110
Эксплуатируем....111
Инжектируем....112
Заглянем под капот....114
Mimikatz: инъекции для взрослых....115
Препарируем Mimikatz....121
Заключение....128
Глава 5....129
0x04b35 Мешаем отладке....129
Защищаемся от реверсинга....129
Антиотладка....130
IsDebuggerPresent....130
Полный PEB....137
Код смерти....141
Атака на отладчик....145
Родительский процесс....147
Подключение к процессу....150
Родительский процесс....152
Отладочные регистры....154
Скрываемся из TEB....161
Плагины для отладчика x64dbg....162
Плагины для сокрытия IDA Pro....165
Заключение....165
0x04d56 Прячемся в дебрях ОС....166
Прячемся в автозагрузку....166
Работа с реестром....167
Функции для работы с реестром....167
Раздел Startup....171
Ветка Run....172
Сервисы....175
Установка сервиса....182
Другой путь....191
И снова реестр....192
Скрытый отладчик....196
Запуск через обновления....199
Переселяем папки....201
Планировщик задач....202
Инъекция DLL в уже запущенный процесс....203
…И просто ярлыки....211
Заключение....212
Глава 7....213
0x04e97 Оконный реверсинг без ассемблера....213
Платформа .NET....213
Необходимые инструменты....218
Пример обфускации....238
Заключение....243
0x04e98 Разбираем упаковку....244
Упаковка и обфускация....244
0x04d59 Исследуем вредоносы....260
Анализ вредоносов....260
Виды вредоносов....260
Разбор обфусцированного крякми....249
Заключение....259
Об инструментах....263
Препарируем блокировщик....264
Препарируем шифровальщик....273
Заключение....282
Глава 10....283
0x04b3a ROP: видишь код? А он есть!....283
Код без кода....283
String-oriented programming....287
Sig return-oriented programming....289
Blind Return Oriented Programming....290
Аналогичные атаки....290
Эксплуатируем ROP....291
Заключение....299
0x0470b Кукушка против вредоносов....300
Песочницы....300
Cuckoo Sandbox....301
Заключение....322
Глава 12....323
0x05f04 Копаемся в памяти с помощью Volatility....323
Форензика....323
Статический анализ....324
Динамический анализ....324
Заключение....331
0x06f01 Полезный инструментарий Remnux....332
0x00f00 Заключение....362
Дистрибутив REMnux....333
Установка REMnux....333
Вариант из контейнера....334
Начинаем анализ....335
Стереть нельзя отправить....339
Cutter....344
Заключение....361
0x0cf00 Приложения....366
Приложение № 1. Инструкции языка ассемблера....366
0x14f00 Библиография....376
Приложение № 2. Горячие клавиши x64dbg....372
Приложение № 3. Горячие клавиши IDA Pro....374
Пустая страница....1
Реверсивный инжиниринг считается одним из наиболее сложных направлений в информационной безопасности (ИБ). В книге автор предлагает приоткрыть завесу тайны над этой темой и с помощью практических примеров рассмотреть, как работают приложения под ОС Windows, а также разобраться в том, как эксплуатировать уязвимости переполнения буфера, размещать свой код в выполняемых файлах, находить полезную информацию в дампах памяти и многое другое.
Книга предназначена как для начинающих специалистов, желающих разобраться в реверс-инжиниринге, так и для опытных специалистов по информационной безопасности, интересующихся данной темой.