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

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

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

Стратегии заражения PE-файлов. Упаковщики

Формат PE-файла

точка входа

Обобщенный алгоритм заражения

Размещение кода внутри заражаемого файла

Перехватить управления до начала или в процессе выполнения основной программы

Определение адресов системных функций, необходимых для функционирования

Стратегии заражения PE-файлов (1)

Добавление новой секции

Изменение таблицы секций

Изменение SizeOfImage

Изменениe числа секций NumberOfSection

Изменение точки входа

Изменение размера последней секции

Изменение VirtualSize, SizeOfRawData

Изменение характеристик в заголовке секции (MEM_READ, MEM_WRITE, MEM_EXECUTE)

Изменение точки входа

Изменение SizeOfImage

«Inject your code to a Portable Executable file»

http://www.codeproject.com/Articles/12532/Inject-your-code-to-a-Portable- Executable-file#BuildanImportTableandReconstructtheOriginalImportTable6

Стратегии заражения PE-файлов (2)

Заражение заголовка

Изменение точки входа

Расположение между началом секций и после PE – заголовка

Код вирус должен быть очень коротким

Изменение заголовка (создание 2-го заголовка)

Изменение поля ifaNew

Стратегии заражения PE-файлов (3)

Стратегии заражения PE-файлов (4)

Заполнение «свободных зон»

FileAlignment (512 байт по умолчанию)

Virtual Size >= RawDataSize

Вставка вызова DLL

вставка вызова LoadLibrary (в «свободную» зону)

изменение точки входа на добавленный код

Обфускация точек входа (1)

Цель скрыть истинную точку входа вируса

1) исходная точка входа остается без изменения

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

Обфускация точек входа (2)

Задача :

1) изменить программный код так, чтобы вирус мог получить управление

Базовые стратегии

EP

 

EP

 

jmp

jmp

 

 

Код

Код

программы

программы

 

jmp

вирус

Обфускация точек входа (3)

Базовые стратегии:

Поиск инструкций безусловного перехода (jmp),

установки флагов (CLC, STC, CLI, STI, CLD), NOP

Динамическое отслеживание выполнения (= отладка)

например, перехват прерываний int 1

поиск определенных инструкций

Вставка инструкций , передающих управление вирусному коду (CALL, JMP, PUSH offset + RET)

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