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

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

.pdf
Скачиваний:
76
Добавлен:
22.03.2016
Размер:
4 Мб
Скачать

Вирусы-паразиты (2)

Запись в начало файла

Код

программы

Код

 

 

 

Код

вируса

 

вируса

 

 

 

 

 

 

Код

программы

вирус

Вирус

Код

программы

Код

программы

a)

b) Классический вирус-паразит

Вирусы-паразиты (3)

Запись в середину файла

1) процедура записи в файл (поиск зон, заполненных пробелами (0x20))

2) процедура загрузки (HEAD)

EP

VEP

EP

 

VEP

 

 

 

 

 

 

 

Вирус А

 

 

В

EP

 

 

 

 

 

Вирус В

Код

Код

Код

 

 

Код

программы

программы

программы

Вирус

программы

 

 

 

 

 

 

Вирус А

 

В

Вирус В

 

 

 

 

 

 

 

 

 

 

 

 

 

Вирус В

 

а

 

б

 

 

Вирусы-паразиты (4)

Амеба (W32/Sand.12300)

Код

Вируса

(начало)

Код

программы

Вирус

Код

программы

Код

Вируса (конец)

а

б

Вирусы-паразиты (5)

Встраивание дешифратора

 

 

 

 

 

 

Начало вируса

 

 

jmp

 

 

 

 

 

 

в1

 

 

 

 

в1

 

Код

Код

Код

Код

программы

программы

программы

программы

 

 

 

 

тело вируса

 

 

Вирус

 

Вирус

 

 

 

 

в1

 

 

Код

 

в1

 

 

 

 

 

 

вируса

 

Сохраненные

 

 

 

блоки

 

 

 

 

 

 

Сохраненн

 

 

 

 

ые блоки

 

 

а

б

Вирусы-компаньоны

Алгоритм работы

Найти цель

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

Копия должна быть связана с файлом-целью

При выполнении заражённой программы управление передаётся сначала вирусу (дополнительному файлу), потом уже самому файлу

Вирусы-компаньоны

Варианты реализации механизма запуска

Особенности ОС

DOS: приоритет выполнения связан с расширением файла .com.exe.bat (уменьшение приоритета)

Windows: иконки файлов, отражающие информацию о расширении файла

Особенности иерархической структуры.

Последовательность загрузки dll

1.каталог, из которого запускает приложение

2.текущий каталог

3.системный каталог (возвращает функция GetSystemDirectory, Win32 обычно …/Windows/System32/) 4.16 -битный системный каталог (…/Windows/System/)

5.Каталог Windows ( возвращает функция GetWindowsDirectory …/Windows/)

6.Каталоги перечисленные в переменной среды PATH

Особенности файловой системы

FAT система: цепочки FAТ

NTFS: потоки

Вирусы, заражающие исходный код

Идея: копирование своего кода Пример: Quine (С)

#include<stdio.h> char*i="\\#include<stdio.h> ",n='\n',q='"',*p= "%s%cchar*i=%c%c%s%c,n='%cn',q='%c',*p=%c%c%s%c,*m=%c%c%s%c%c;%s%c",*m= "int main(){return!printf(p,i+1,n,q,*i,i,q,*i,q,n,q,p,q,n,q,m,q,n,m,n);}" ;int main(){return!printf(p,i+1,n,q,*i,i,q,*i,q,n,q,p,q,n,q,m,q,n,m,n);}

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

1.Скомпилированный код полностью однороден

2.Возможность обойти все известные техники обнаружения, использующие анализ кода

3.Могут быть эффективны в различных неизвестных средах исполнения

Вирусы, заражающие исходный код

Алгоритм заражения

Создать заголовочный файл вируса

.stdio.h

Заражение исходных файлов:

включить заголовочный файл

#include “.stdio.h” вместо #include <stdio.h>

включить вызовы функций из заголовочного файла вируса

Компиляция исходных кодов

Маскировка точки входа

Форматы исполняемых файлов

 

 

 

 

LE

 

PE/PE+

 

 

NE

 

 

COM

 

 

32-бит драйвера

 

32,64-битные

 

16-битные модули

 

 

DOS

 

Windows 1.0,

 

устройств в Win

 

модули

 

 

9x

 

Windows NT

 

 

Windows ME

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

COFF

 

ELF

*nix ОС

 

*nix ОС

 

 

 

 

 

 

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

PE = Portable Executable

В основе лежит формат COFF

Реализует динамическое связывание, импорт/экспорт символов

Может содержать бинарный код микропроцессоров Intel, Alpha, MIPS и даже.NET MSIL

64-битная версия называется PE32+