Чтение онлайн

на главную

Жанры

Защити свой компьютер на 100% от вирусов и хакеров
Шрифт:

jmp si

;...

;...

begin_code:

;зашифрованная часть тела вируса – здесь!

;она ответственна за заражение новых файлов

;и создание новой процедуры расшифровки

В качестве примера уместно привести описание следующего полиморфного вируса (www.virusList.com).

Virus.Win32.Zombie – сложный полиморфный вирус, который использует уникальную технологию встраивания в файлы: вирус "разбирает" (дизассембли-рует) PE EXE-файл на составные части, встраивает свой код и собирает

заново, перемешивая при этом свой код и код заражаемого файла. Virus.Win32.Zombie использует уникальную технологию декриптования своего тела для обхода эвристических анализаторов.

Обфускация

Обфускация (от лат. obfuscare – «затенять, затемнять») – техника, направленная на запутывание кода программы, то есть приведение исходного текста или исполняемого кода к работающему виду, но затрудняющему анализ такого кода.

Обфускация может быть проведена на уровне алгоритма, на уровне исходного текста или вообще ассемблерного текста. Так, создание запутанного ассемблерного текста может быть достигнуто путем использования специализированных компиляторов. Такие компиляторы, как правило, заново создают код, используя для этого недокументированные возможности среды выполнения программы.

Для создания "запутанного" кода существуют специализированные утилиты, которые так и называются– обфускаторы.

В контексте сокрытия вирусного кода суть метода заключается в том, чтобы запутать программный код и устранить в нем большинство логических связей, делая код максимально неузнаваемым антивирусным ПО (листинги 5.4, 5.5).

Листинг 5.4. Некоторые примеры обфускации кода. Пример № 1

int COUNT = 100;

float TAX_RATE = 0.2;

for (int i=0; i<COUNT; i++)

{

tax[i] = orig_price[i] * TAX_RATE; price[i] = orig_price[i] + tax[i];

}

Код после обфускации:

for(int a=0;a<100;a++){b[a]=c[a]*0.2;d[a]=c[a]+b[a];}

Листинг 5.5. Некоторые примеры обфускации кода. Пример № 2 (Perl)

my $filter;

if (@pod) {

my ($buffd, $buffer) = File::Temp::tempfile(UNLINK => 1);

print $buffd "";

print $buffd @pod or die "";

print $buffd

close $buffd or die "";

@found = $buffer;

$filter = 1;

}

exit;

sub is_tainted {

my $arg = shift;

my $nada = substr($arg, 0, 0); # zero-length

local $@; # preserve caller's version

eval { eval "#" }; return length($@) != 0;

}

sub am_taint_checking {

my($k,$v) = each %ENV;

return is_tainted($v);

}

После обфускации:

sub z109276e1f2 { ( my $z4fe8df46b1 = shift ( @_ ) ) ; ( my

$zf6f94df7a7 = substr ( $z4fe8df46b1 ,

(0x1eb9+ 765-0x21b6) , (0x0849+ 1465-0x0e02) ) ) ; local $@ ;

eval { eval ( (

"" ) ) ; } ; return ( ( length ( $@ ) != (0x26d2+ 59-0x270d) ) )

; } my ( $z9e5935eea4 ) ; if ( @z6a703c020a ) { ( my (

$z5a5fa8125d , $zcc158ad3e0 ) =

File::Temp::tempfile ( "" , (0x196a+ 130-0x19eb) ) ) ; print (

$z5a5fa8125d "" ) ; ( print ( $z5a5fa8125d @z6a703c020a

) or die ( ( ( ( "" . $zcc158ad3e0 ) . "\x3a\x20" ) . $! ) ) ) ;

print ( $z5a5fa8125d "" ) ; ( close ( $z5a5fa8125d ) or die ( ( (

( "" ) ) ) ; ( @z8374cc586e = $zcc158ad3e0 ) ; ( $z9e5935eea4 =

(0x1209+ 1039-0x1617) ) ; } exit ; sub z021c43d5f3 { ( my (

$z0f1649f7b5 , $z9e1f91fa38 ) = each ( %ENV ) ) ; return (

z109276e1f2 ( $z9e1f91fa38 ) ) ; }

Как

видите, в простейшем случае процедура обфускации заключается в переводе кода в нечитаемое (но рабочее) состояние.

Вышеописанные примеры – примеры так называемой высокоуровневой обфускации "мирного назначения". Если же ее экстраполировать на вирусный код, то изменится немногое: разве только то, что при маскировке вирусного кода используют в большинстве случаев низкоуровневую обфускацию (с применением команд ассемблера), а также программы для автоматической обфускации, например Afx!AVSpoffer, EPProt и PETools.

Технология обфускации может подразумевать следующие процедуры:

изменение таблиц импорта, экспорта и переадресации;

маскировка оригинальной Entry Point (точка входа в программу);

использование полиморфного варианта распаковки.

Продолжим рассмотрение вариантов сокрытия и рассмотрим особенности руткит-технологий.

Руткит-технологии

Термин руткит (от англ. root kit – «набор для получения прав администратора») есть не что иное, как программа или набор программ для скрытого взятия под контроль взломанной системы.

В контексте сокрытия вирусного кода в системе Windows под rootkit принято подразумевать такой код, который, будучи внедренным в систему, способен перехватывать системные функции (Windows API). Нетрудно догадаться, что такой перехват и модификация API-функций позволяют руткиту легко и просто замаскировать свое присутствие во взломанной системе.

Упрощенно все rootkit-технологии сокрытия можно разделить на две категории:

работающие в режиме пользователя (user-mode);

работающие в режиме ядра (kernel-mode).

User-mode-категория руткитов основана на перехвате функций библиотек пользовательского режима, kernel-mode – на установке в систему драйвера, осуществляющего перехват функций уровня ядра.

В настоящее время можно выделить следующие методы перехвата API-функций в режиме пользователя (user mode):

модификация таблицы импорта;

модификация машинного кода прикладной программы;

модификация программного кода API-функции;

перехват функций LoadLibrary и GetProcAddress.

Поделиться:
Популярные книги

Невеста

Вудворт Франциска
Любовные романы:
любовно-фантастические романы
эро литература
8.54
рейтинг книги
Невеста

Энфис 4

Кронос Александр
4. Эрра
Фантастика:
городское фэнтези
рпг
аниме
5.00
рейтинг книги
Энфис 4

Игрок, забравшийся на вершину. Том 8

Михалек Дмитрий Владимирович
8. Игрок, забравшийся на вершину
Фантастика:
фэнтези
рпг
5.00
рейтинг книги
Игрок, забравшийся на вершину. Том 8

Папина дочка

Рам Янка
4. Самбисты
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Папина дочка

Чужое наследие

Кораблев Родион
3. Другая сторона
Фантастика:
боевая фантастика
8.47
рейтинг книги
Чужое наследие

Идеальный мир для Социопата 7

Сапфир Олег
7. Социопат
Фантастика:
боевая фантастика
6.22
рейтинг книги
Идеальный мир для Социопата 7

Восход. Солнцев. Книга VIII

Скабер Артемий
8. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга VIII

Аномальный наследник. Том 1 и Том 2

Тарс Элиан
1. Аномальный наследник
Фантастика:
боевая фантастика
альтернативная история
8.50
рейтинг книги
Аномальный наследник. Том 1 и Том 2

Мир-о-творец

Ланцов Михаил Алексеевич
8. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Мир-о-творец

Совок 9

Агарев Вадим
9. Совок
Фантастика:
попаданцы
альтернативная история
7.50
рейтинг книги
Совок 9

Инцел на службе демоницы 1 и 2: Секса будет много

Блум М.
Инцел на службе демоницы
Фантастика:
фэнтези
5.25
рейтинг книги
Инцел на службе демоницы 1 и 2: Секса будет много

Кодекс Крови. Книга Х

Борзых М.
10. РОС: Кодекс Крови
Фантастика:
фэнтези
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга Х

Бальмануг. (Не) Любовница 2

Лашина Полина
4. Мир Десяти
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Бальмануг. (Не) Любовница 2

Любовь Носорога

Зайцева Мария
Любовные романы:
современные любовные романы
9.11
рейтинг книги
Любовь Носорога