Содержание книги "Реверсивный инжиниринг приложений под Windows
"
0x0cf11 Вступление
О пользе реверсинга
Зачем нужен реверсинг
О чем эта книга
Заключение к вступлению
Глава 1. 0x00f13 О коде, инструментах и крякмиксах
Основы реверсинга
Регистры и стек
Флаги
Инструкции
Режимы адресации
Реальный режим
Защищенный режим
Многосегментная модель памяти
Длительный режим (Long Mode)
О реверсинге
Ассемблер и компиляторы
Отладчики и дизассемблеры
Только виртуализация
Основы реверсинга, начинаем ломать
О патчинге
Подведем промежуточные итоги
Пишем кейген
Виды механизмов защиты
Разбор крякми
Пишем кейген
Заключение
Глава 2. 0x06f16 Переполняем и эксплуатируем
Переполнение буфера
Суть проблемы
Подопытный код
Методы поиска уязвимостей
Метод белого ящика
Метод серого ящика
Метод черного ящика
Фаззинг
Подключаем отладчик
Готовый шелл-код
Прямой и обратный шелл
Генерируем прямой шелл
Генерируем обратный шелл
Заключение
Глава 3. 0x05f1b Забираемся в чужие EXE’шники
Инъекции кода в выполнимые файлы
Не только расширение
MZ и другие
Сигнатура
Структура
Таблица импорта
Таблица экспорта
Таблица перемещений
Следы компиляторов
Прячемся в «пещере кода»
Заключение
Глава 4. 0x04704 Свой код среди чужого
Инъекции процессов в Windows
Байты плохие и очень плохие
Пишем инжектор
Эксплуатируем
DLL-инъекция кода
Динамические библиотеки
Создаем свою DLL
Отражающая DLL-инъекция
Учимся отражать
Эксплуатируем
Инжектируем
Заглянем под капот
Mimikatz: инъекции для взрослых
Препарируем Mimikatz
Заключение
Глава 5. 0x04b35 Мешаем отладке
Защищаемся от реверсинга
Антиотладка
IsDebuggerPresent
Полный PEB
Код смерти
Атака на отладчик
Родительский процесс
Подключение к процессу
Родительский процесс
Отладочные регистры
Скрываемся из TEB
Плагины для отладчика x64dbg
Плагины для сокрытия IDA Pro
Заключение
Глава 6. 0x04d56 Прячемся в дебрях ОС
Прячемся в автозагрузку
Работа с реестром
Функции для работы с реестром
Раздел Startup
Ветка Run
Сервисы
Установка сервиса
Другой путь
И снова реестр
Скрытый отладчик
Запуск через обновления
Переселяем папки
Планировщик задач
Инъекция DLL в уже запущенный процесс
...И просто ярлыки
Заключение
Глава 7. 0x04e97 Оконный реверсинг без ассемблера
Платформа .NET
Необходимые инструменты
Пример обфускации
Заключение
Глава 8. 0x04e98 Разбираем упаковку
Упаковка и обфускация
Разбор обфусцированного крякми
Заключение
Глава 9. 0x04d59 Исследуем вредоносы
Анализ вредоносов
Виды вредоносов
Об инструментах
Препарируем блокировщик
Препарируем шифровальщик
Заключение
Глава 10. 0x04b3a ROP: видишь код? А он есть!
Код без кода
String-oriented programming
Sig return-oriented programming
Blind Return Oriented Programming
Аналогичные атаки
Эксплуатируем ROP
Заключение
Глава 11. 0x0470b Кукушка против вредоносов
Песочницы
Cuckoo Sandbox
Заключение
Глава 12. 0x05f04 Копаемся в памяти с помощью Volatility
Форензика
Статический анализ
Динамический анализ
Заключение
Глава 13. 0x06f01 Полезный инструментарий Remnux
Дистрибутив REMnux
Установка REMnux
Вариант из контейнера
Общие действия по анализу подозрительного файла
Начинаем анализ
Стереть нельзя отправить
Cutter
Заключение
Глава 14
Глава 15
Приложение № 1. Инструкции языка ассемблера
Приложение № 2. Горячие клавиши x64dbg
Приложение № 3. Горячие клавиши IDA Pro
Глава 16. 0x14f00 Библиография