Аудит и дизассемблирование exploit'ов

Аудит и дизассемблирование exploit'ов

Аудит и дизассемблирование exploit'ов

Введение
Как препарируют exploit'ы
Анализ message queuing exploit'а
Листинг1 фрагмент exploit'а, ответственный за сборку пакета-убийцы
устройство пакета-убийцы, передаваемого на атакуемый сервер
Листинг2 массив offsets хранит
Листинг3 последовательность pop reg/pop reg/retn, содержащаяся в mqsvc.exe файле
Листинг4 фрагмент функции, формирующий новый SEH-фрейм (компилятор — Microsoft Visual C++)



расположение SEH-фреймов относительно переполняющихся буферов
Листинг5 структура SEH-фреймов
Листинг6 последовательность вызова функций при обработке исключения
Листинг7 фрагмент RTL-функции
Листинг8 программа, сохраняющая
Листинг9 в начале shell-кода расположен расшифровщик, расшифровывающий весь остальной код
Листинг10 псевдокод команды fstenv, сохраняющей среду FPU
Листинг11 карта размещения среды в стековой памяти
Листинг12 скрипт для IDA Pro, расшифровывающий shell-код
расшифровка shell-кода в hiew'e

Листинг13 древний антидизассемблерный трюк — прыжок в середину команды
Листинг14 код, вычисляющий базовый адрес KERNEL32.DLL через PEB
Листинг15 недокументированная структура PEB_LDR_DATA
Листинг16 недокументированная структура LDR_MODULE
Листинг17 вызов API-функции по хэш-именам
Листинг17 вызов API-функции по хэш-именам - 2
Листинг18 процедура MyGetProcAddress, возвращающая адрес API-функции по хэш-сумме его имени
Листинг19 загрузка библиотеки ws2_32 для работы с сокетами и ее инициализация
Заключение
Врезка как запустить shell-код под отладчиком

Врезка интересные ссылки
Содержание раздела