Локализация ошибки в программе. Построение диаграммы стека уязвимой функции. Построение контрольного примера, демонстрирующего наличие уязвимости. Построение эксплоита с шелл-кодом.
Практические задания
Ошибка типа «переполнение буфера»
Динамическое инструментирование бинарного кода
Применение системы динамического инструментирования Pin. Выявление поведенческих сигнатур в бинарном коде. Модификация поведения бинарного кода.
03.1
Анализ трассы выполнения программы, часть 1
Реализация собственного инструмента анализа трассы. Восстановление графа потока управления по трассе.
03.2
Анализ трассы выполнения программы, часть 2
Реализация собственного инструмента анализа трассы. Анализ помеченных данных.