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

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

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

Федеральное агентство по образованию

Санкт-Петербургский Государственный Электротехнический Университет «ЛЭТИ»

Стратегии самозащиты вредоносного ПО. Анти-дизассемблирование

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

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

Цель: затруднение статического анализа кода программы :

шифрование исходного кода

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

динамическое изменение кода

полиморфизм

метаморфизм

использование упаковщиков

Дизасемблирование

Крис Касперски, Ева Рокко

Искусство дизассемблирования (+ CD-ROM) БХВ-Петербург , 2008

Дизассемблирование

0101001100010101

24 AA 40 00 53

0101010101001010

AA 40 00 85 AA

1010101010101010

40 00 B7 AA 40

1011110101001010

00 E8 CF 40 00

011101010000

97 D1 40 00 D7

D1 40 00 5A

PUSH EBP MOV EBP,ESP

PUSH -1

PUSH Crackme1.00410600 PUSH Crackme1.

MOV EAX,DWORD PTR FS:[0]

….

PUSH ESI CALL

Crackme1.0040234C POP ECX

PUSH 1B

Дизассемблирование

Дизассемблеры:

Линейные (linear)

Дизассемблеры с рекурсивным прослеживанием информационных потоков (recursive traversal)

Дизассемблер: линейная интерпретация кода

Принцип работы:

Считать инструкцию,

Определить ее размер

Перейти к следующей инструкции с учетом вычисленного размера инструкции

Преимущества:

Простая реализация

Недостаток

Слишком много кода

Некорректная трактовка кода при 1) использовании инструкции передачи управления, 2) данные совмещены с кодом

Дизассемблер: линейная интерпретация кода

0042ABFE:

EB 01

jmp 0042AC01

0042AC00:

F3 BB 44 33 22 11

rep mov ebx,11223344h

0042AC06:

5F

pop edi

Дизассемблер: рекурсивное прослеживание информационных потоков

Принцип работы:

Анализ инструкций

Список адресов, по которым должна быть дизассемблирована программы

Рекурсивный анализ веток программы

Преимущества:

Корректная обработка веток программы

Недостаток

Ошибки при интерпретации операций, передающих управление по динамически вычисленным адресам

Дизассемблер: рекурсивное прослеживание информационных потоков (1) VS линейный анализ (2)

Условный переход

да

нет

 

 

Условие

Линейный анализ: анализ следующей инструкции

Рекурсивный анализ: анализ ветви НЕТ

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