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

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

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

Анти-дизассемблирование: маскировка потока

выполнения программы

Маскировка вызовов функций

Манипуляция со стеком (изменение и адресация относительно ESP или EBP)

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

Анти-дизассемблирование: маскировка потока

выполнения программы

Маскировка вызовов функций:

Затрудняет анализ границ функций

Рекурсивные дизассемблеры интерпретируют инструкции после call как валидные

1.Инструкция call без ret

call == push ret_addr, jmp new_addr

Вариант использования:

call target

.target

pop <register_name> ; вытолкнули адрес возврата

Анти-дизассемблирование: маскировка потока

выполнения программы

2. Инструкция call, jmp + регистр Часто используется в упаковщиках, т.к.

Call <addr> = 5 байт Call <register> = 2 байта

Анти-дизассемблирование: маскировка потока

выполнения программы

3. Использование ret/ retn

ret == pop ret_addr, jmp ret_addr

Анти-дизассемблирование: маскировка потока

выполнения программы

Анти-дизассемблирование: маскировка потока

выполнения программы

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

SEH работает по принципу стека (Last IN – First OUT)

Анти-дизассемблирование: маскировка потока

выполнения программы

Назначить собственный обработчик:

push ExceptionHandler push fs:[0]

mov fs:[0], esp

Есть механизмы, контролирующие динамическое создание собственных обработчиков:

SafeSEH (Microsoft®)

Обфускация кода

Нарушение соглашений вызовов функций

Использование «ничего не делающего» кода («мусорные инструкции»)

Спрятать важный код за «мусором»

Существуют походы к семантическому анализу кода, есть множество недостатков

Обфускация констант

Полиморфизм, метаморфизм, обфускация кода

Цель: скрыть код дешифратора

Уровни полиморфизма

Олигоморфизм

Полиморфизм

Метаморфизм

с

л

о

ж

н

о

с

т

ь

Олигоморфизм

Конечное множество дешифраторов.

Небольшие изменения

Небольшие изменения сложно увидеть

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