Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2015_лекции / Лекция №6_2015

.pdf
Скачиваний:
61
Добавлен:
22.03.2016
Размер:
4.66 Mб
Скачать

Затруднение отладки

Использование исключений

Зафлудить исключениями

Отключение аппаратных точек останова с помощью обработчика исключений

Самоотладка

Создание дочернего процесса, который осуществляет отладку родительского процесса

Разделить поток выполнения программы между этими двумя процесса, обеспечить взаимодействие через исключения

Использование прерываний

Int 3, 0xCD03 (STATUS_BREAKPOINT) в WinDbg EIP + 1 байт

INT 2D

ICEBD

Маскировка точек входа и формата файла

Использование TLS

Затруднение отладки

Использование уязвимостей отладчиков

Например, OllyDbg v1.0

1) уязвимость к неправильному формату PE заголовка -> выдается ошибка о неверном формате исполняемого файла

NumberOfRvaAndSizes = 0x99 (вместо 0x10) в IMAGE_OPTIONAL_HEADER

SizeofRawData = 77777777h в IMAGE_SECTION_HEADER

2) переполнение буфера с использованием форматированной строки:

OutputDebugString (%s%s%s%s%s%s%s%s%s)

Как обойти антиотладочные приемы

Сделать отладчик менее заметным для исследуемой программы

Сбросить флаги в PEB

Отключить флаги, контролирующие выделение кучи

У OllyDbg есть расширения, автоматизирующие эти задачи

В зависимости от характера анти-отладочных трюков выберите свою стратегию анализа

Если отключены аппаратные точки останова, используйте программные

Подключитесь к процессу после того, как он распаковал себя, но до его завершения

Пропустите наиболее сложные части кода, и анализируйте код рядом в ручную

Сложно и затратно по времени

Соседние файлы в папке 2015_лекции