<
  • Главная
Статьи

Шкідливі програми і віруси

  1. замість вступу
  2. Що таке віруси
  3. Класифікація комп'ютерних вірусів
  4. завантажувальні віруси
  5. файлові віруси
  6. Переписувачі - Overwriting віруси
  7. Віруси паразити (Parasitic)
  8. Компаньон - віруси
  9. файлові черви
  10. Link-віруси
  11. OBJ-, LIB-віруси і віруси у вихідних текстах
  12. Алгоритм роботи файлового вірусу

Поздеев Василь

Поздеев Василь    замість вступу   Шановні користувачі, матеріал даної статті можна вважати повним і вичерпним, так як прогрес неухильно рухається вперед і, на жаль технології, з написання вірусів і шкідливих програм також удосконалюються замість вступу

Шановні користувачі, матеріал даної статті можна вважати повним і вичерпним, так як прогрес неухильно рухається вперед і, на жаль технології, з написання вірусів і шкідливих програм також удосконалюються. Дана стаття складена в ознайомлювальних цілях, для підвищення освіченості та поінформованості користувачів. Я сподіваюся (невірне наївно), що викладений матеріал нікого не підштовхне до написання шкідливих програм, а навпаки насторожити. Пам'ятайте, є один мудрий вислів: "Не плюйте в криницю, випити доведеться". У нашому випадку Інтернет це величезний "колодязь" інформації, з якого ми отримуємо необхідні для нас з Вами відомості. Утримувати його в чистоті наша з Вами прямий обов'язок, адже ми є його невід'ємними частками (нехай побічно, але тим не менше :).

Що таке віруси

Вірус - це спеціально написана, невелика за розмірами програма, послідовність кодів-інструкцій, яка може "приписувати" себе до інших програм ( "заражати" їх), створювати свої копії (не завжди однакові) і впроваджувати їх у файли, системні області комп'ютера і т.д., а також виконувати різні небажані дії на комп'ютері.

Своєю назвою комп'ютерні віруси зобов'язані певному подібності з вірусами природними: здатності до самозараження; високій швидкості поширення; вибірковості слабости систем (кожен вірус вражає тільки певні системи або однорідні групи систем); здатності "заражати" ще незаражені системи; труднощі в боротьбі з вірусами і т.д ..

Класифікація комп'ютерних вірусів

Умовно віруси можна класифікувати за такими ознаками:
* По природному середовищі вірусу
* За способом зараження середовища проживання
* По деструктивних можливостях
* За особливостями алгоритму вірусу
* По виду деструктивних дій

У свою чергу вище перераховані групи класифікуються наступним чином:
* Навколишнє середовище
- Мережеві - поширюються по комп'ютерній мережі;
- Файлові - впроваджуються у виконувані файли;
- Завантажувальні - впроваджуються в завантажувальні області носіїв інформації (boot-сектор).
* Спосіб зараження
- Резидентні - знаходяться в оперативній пам'яті комп'ютера, активні до виключення комп'ютера;
- Чи не резидентні - не заражають пам'ять, є активними обмежений час.
* Деструктивні можливості
- Нешкідливі - практично не впливають на роботу; зменшують вільну пам'ять на диску в результаті свого поширення;
- Чи не небезпечні - зменшують вільну пам'ять, створюють звукові, графічні та інші ефекти;
- Небезпечні - можуть привести до серйозних збоїв в роботі;
- Дуже небезпечні - можуть привести до втрати програм або системних даних.
* Особливості алгоритму вірусу
- Віруси - "супутники" - віруси, що не змінюють файли, створюють для ЕХЕ-файлів файли-супутники з розширенням СОМ;
- Віруси - "черв'яки" - поширюються по мережі, розсилають свої копії, обчислюючи мережеві адреси;
- Паразитичні - змінюють вміст дискових секторів або файлів;
- "Студентські" - примітив, містять велику кількість помилок;
- "Стелс" - віруси - перехоплюють звернення DOS до уражених файлів або секторам і підставляють замість себе незаражені ділянки;
- віруси- "примари" або Поліморфні віруси - не мають жодного постійної ділянки коду, важко виявленню, основне тіло вірусу зашифровано;
- Макровіруси - пишуться не в машинних кодах, а на VBA і JS, живуть в документах Word, переписують себе в Normal.dot.
* Вид деструктивних дій
- Інформаційні віруси - знищують інформацію;
- Апаратні віруси - виводять з ладу апаратну частину комп'ютера;
- Психотропні віруси - здатні вбити людину.

завантажувальні віруси

Завантажувальні віруси заражають завантажувальний (boot) сектор флоппі-диска і boot-сектор або Master Boot Record (MBR) вінчестера. Принцип дії завантажувальних вірусів заснований на алгоритмах запуску операційної системи при включенні або перезавантаженні комп'ютера.

Щоб було зрозуміліше, я докладно поясню, як відбувається завантаження комп'ютера: після включення ПК в мережу блок живлення посилає сигнал POWER_ON на материнську плату, та в свою чергу перевіряє напруги в ланцюзі харчування, якщо воно відповідає нормі, то комп'ютер включається. Далі управління отримує програма в BIOS (Basic Input Output System) відеокарти, вона виробляє тестування компонентів відеокарти і при отриманні позитивних даних, передає управління BIOS материнської плати. Він запускає процедуру POST (Power-On Self Test), яка виробляє самотестування всіх компонентів системи, якщо тестування відбувається вдало і всі знайдені пристрої повернули позитивні сигнали, BIOS відповідно до даних в розділі Boot і передає управління тому пристрою, яке стоїть в даному списку першим. Управління передається за допомогою пошуку першого фізичного сектора, зчитування його і запуску початкового завантажувача.

У разі дискети або компакт-диска управління отримує boot-сектор, який аналізує таблицю параметрів диска (BPB - BIOS Parameter Block) вираховує адреси системних файлів операційної системи, зчитує їх в пам'ять і запускає на виконання. Якщо ж на завантажувальному диску відсутні файли операційної системи, програма, розташована в boot-секторі диска видає повідомлення про помилку і пропонує замінити завантажувальний диск.

У разі вінчестера управління отримує, вище зазначений, початковий завантажувач який, аналізує таблицю розбиття диска (Disk Partition Table), обчислює адресу активного boot-сектора (зазвичай цим сектором є boot-сектор диска C :), завантажує його в пам'ять і передає на нього управління. Отримавши управління, активний boot-сектор вінчестера проробляє ті ж дії, що і boot-сектор дискети. Далі все простіше, в системних файлах знаходиться завантажувач операційної системи, який і виробляє подальшу завантаження ОС.

При зараженні дисків завантажувальні віруси "підставляють" свій код замість якої-небудь програми, яка отримує управління при завантаженні системи. Принцип зараження, таким чином, однаковий у всіх описаних вище способах: вірус "змушує" систему при її перезапуску вважати в пам'ять і віддати управління не оригінальному коду завантажувача, а коду вірусу.

Зараження дискет проводиться єдиним відомим способом - вірус записує свій код замість оригінального коду boot-сектора дискети. Вінчестер заражається трьома можливими способами - вірус записується або замість коду MBR, або замість коду boot-сектора завантажувального диска (зазвичай диска C :), або модифікує адресу активного boot-сектора в Disk Partition Table, розташованої в MBR вінчестера.

При інфікуванні диска вірус в більшості випадків переносить оригінальний boot-сектор (або MBR) в будь-якій іншій сектор диска (наприклад, в перший вільний). Якщо довжина вірусу більше довжини сектора, то в заражає сектор поміщається перша частина вірусу, інші частини розміщуються в інших секторах (наприклад, в перших вільних).

Якщо довжина вірусу більше довжини сектора, то в заражає сектор поміщається перша частина вірусу, інші частини розміщуються в інших секторах (наприклад, в перших вільних)

Існує кілька варіантів розміщення на диску початкового завантажувального сектора і продовження вірусу: у сектори вільних кластерів логічного диска, в невикористовувані або рідко використовувані системні сектора, в сектора, розташовані за межами диска.

Якщо продовження вірусу розміщується в секторах, які належать вільним кластерам диска (при пошуку цих секторів вірусу доводиться аналізувати таблицю розміщення файлів - FAT), то, як правило, вірус позначає в FAT (Fail Allocation Table) ці кластери як збійні (так звані псевдосбойние кластери ).

Так само, віруси розміщують початковий завантажувальний сектор в невживаному або рідко використовується секторі - в одному з секторів вінчестера (якщо такі є), розташованих між MBR і першим boot-сектором, а на дискеті такий сектор вибирається з останніх секторів кореневого каталогу.

Деякі віруси записують свій код в останні сектора вінчестера, оскільки ці сектори використовуються тільки тоді, коли вінчестер повністю заповнений інформацією. Рідше використовується метод збереження продовження вірусу за межами диска. Досягається це двома способами. Перший зводиться до зменшення розмірів логічних дисків: вірус віднімає необхідні значення з відповідних полів BPB boot-сектора і Disk Partition Table вінчестера (якщо заражається вінчестер), зменшує, таким чином, розмір логічного диска і записує свій код в "відрізані" від нього сектора.

Другий спосіб - запис даних за межами фізичного розбиття диска. У разі флоппі-дисків вірусу для цього доводиться форматувати на диску додатковий трек (метод нестандартного форматування). Існують віруси, що записують свій код за межами доступного простору вінчестера, якщо, зрозуміло, це допускається встановленим обладнанням.

Звичайно, існують і інші методи розміщення вірусу на диску, наприклад, деякі віруси містять в своєму тілі стандартний завантажувач MBR і при зараженні записуються поверх оригінального MBR без його збереження.

При зараженні більшість вірусів копіює в код свого завантажувача системну інформацію, що зберігається в первісному завантажувач (для MBR цією інформацією є Disk Partition Table, для Boot-сектора дискет - BIOS Parameter Block). В іншому випадку система виявиться нездатною завантажити себе, оскільки дискові адреси компонент системи вираховуються на основі цієї інформації.

Однак деякі Стелс-віруси не зберігають цю інформацію або навіть більше того - навмисно шифрують її. При зверненні системи або інших програм до заражених секторам вірус підставляє їх незаражені оригінали, і завантаження системи відбувається без будь-яких збоїв.

Слід також відзначити той факт, що завантажувальні віруси дуже рідко "уживаються" разом на одному диску - часто вони використовують одні і ті ж дискові сектора для розміщення свого коду / даних. В результаті код / ​​дані першого вірусу виявляються зіпсованими при зараженні другим вірусом, і система або зависає при завантаженні, або зациклюється.

Алгоритм роботи завантажувального вірусу

Практично всі завантажувальні віруси резидентні. Вони впроваджуються в пам'ять комп'ютера при завантаженні з інфікованого диска. При цьому системний завантажувач зчитує вміст першого сектора диска, з якого відбувається завантаження, поміщає зчитану інформацію в пам'ять і передає на неї (тобто на вірус) управління. Після цього починають виконуватися інструкції вірусу, який:
1. як правило, зменшує обсяг вільної пам'яті (слово за адресою 0040: 0013), копіюють в місце, що звільнилося свій код і зчитує з диска своє продовження (якщо воно є). Надалі деякі віруси "чекають" завантаження ОС і відновлюють це слово в його початкове значення. В результаті вони виявляються розташованими нема за межами ОС, а як окремі блоки пам'яті операційної системи.
2. перехоплює необхідні вектора переривань (зазвичай - INT 13h), зчитує в пам'ять оригінальний boot-сектор і передає на нього управління.

Надалі завантажувальний вірус поводиться так само, як резидентний файловий: перехоплює звернення операційної системи до дисків і інфікує їх, в залежності від деяких умов здійснює деструктивні дії або викликає звукові або відеоефекти.

Існують нерезидентні завантажувальні віруси - при завантаженні вони заражають MBR вінчестера і дискети, якщо ті присутні в дисководах. Потім такі віруси передають управління оригінальному завантажувачу і на роботу комп'ютера більш не впливають.

файлові віруси

До даної групи належать віруси, які при своєму розмноженні тим або іншим способом використовують файлову систему будь-якої ОС.

Впровадження файлового вірусу можливо практично в усі виконувані файли всіх популярних ОС, а також динамічні і віртуальні бібліотеки драйверів (dll, VxD) і багато інших файли.

Існують віруси, що заражають файли, які містять вихідні тексти програм, бібліотечні або об'єктні модулі. Можливий запис вірусу й у файли даних, але це трапляється або в результаті помилки вірусу, або при прояві його агресивних властивостей. Макро-віруси також записують свій код у файли даних - документи або електронні таблиці, - проте ці віруси настільки специфічні, що винесені в окрему групу.

За способом зараження файлів віруси діляться на переписувачів ( "overwriting"), паразитичні ( "parasitic"), компаньйон-віруси ( "companion"), "link" -віруси, віруси-черв'яки і віруси, що заражають об'єктні модулі (OBJ), бібліотеки компіляторів (LIB) і вихідні тексти програм.

Переписувачі - Overwriting віруси

Даний метод зараження є найбільш простим: вірус записує свій код замість коду заражає файли, знищуючи його вміст. Природно, що при цьому файл перестає працювати і не відновлюється. Такі віруси дуже швидко виявляють себе, так як операційна система і додатки досить швидко перестають працювати.

До різновиду overwriting-вірусів відносяться віруси, які записуються замість заголовка EXE-файлів. Основна частина файлу при цьому залишається без змін і продовжує нормально працювати у відповідній операційній системі, однак заголовок файлу виявляється зіпсованим.

Віруси паразити (Parasitic)

До паразитичним відносяться всі файлові віруси, які при поширенні своїх копій обов'язково змінюють вміст файлів, залишаючи цими файли при цьому повністю або частково працездатними. Основними типами таких вірусів є віруси, що записуються в початок файлів ( "prepending"), в кінець файлів ( "appending") і в середину файлів ( "inserting"). У свою чергу, впровадження вірусів в середину файлів відбувається різними методами: шляхом переносу частини файлу в його кінець або копіювання свого коду в явно не використовуються дані файлу ( "cavity" -віруси).

Впровадження вірусу в початок файлу

Відомі два способи впровадження паразитичного файлового вірусу в початок файлу. Перший спосіб полягає в тому, що вірус переписує початок заражає файли в його кінець, а сам копіюється в місце, що звільнилося. При зараженні файлу другим способом вірус створює в оперативній пам'яті свою копію, дописує до неї заражає файл і зберігає отриману конкатенацію на диск. Деякі віруси при цьому дописують в кінець файлу блок додаткової інформації (наприклад, вірус "Jerusalem" з цього блоку відрізняє заражені файли від незаражених).

Впровадження вірусу в початок файлу застосовується в переважній більшості випадків при зараженні DOS'овскіх BAT- і COM-файлів. Відомо кілька вірусів, записуючих себе в початок EXE-файлів операційних систем DOS, Windows і навіть Linux. При цьому віруси, щоб зберегти працездатність програми, або лікують заражений файл, повторно запускають його, чекають закінчення його роботи і знову записуються в його початок (іноді для цього використовується тимчасовий файл, в який записується знешкоджений файл), або відновлюють код програми в пам'яті комп'ютера і налаштовують необхідні адреси в її тілі (тобто дублюють роботу ОС).

Впровадження вірусу в кінець файлу

Найбільш поширеним способом впровадження вірусу в файл є дописування вірусу в його кінець. При цьому вірус змінює початок файлу таким чином, що першими виконуваними командами програми, що міститься у файлі, є команди вірусу.

В DOS COM-файлі в більшості випадків це досягається зміною його перших трьох (або більше) байтів на коди інструкції JMP Loc_Virus (або в більш загальному випадку - на коди програми, що передає управління на тіло вірусу).

Віруси, впроваджуються в SYS-файли, приписують свої коди до тіла файлу і модифікують адреси програм стратегії (Strategy) і переривання (Interrupt), що заражається драйвера. При ініціалізації зараженого драйвера вірус перехоплює відповідний запит операційної системи, передає його драйверу, чекає відповіді на цей запит, коригує його і залишається разом з драйвером в одному блоці оперативної пам'яті. Такий вірус може бути надзвичайно небезпечним і живучим, так як він впроваджується в оперативну пам'ять при завантаженні ОС раніше будь-якої антивірусної програми, якщо вона, звичайно, теж не є драйвером.

Існують також віруси, що заражають системні драйвера іншим способом: вірус модифікує його заголовок так, що ОС розглядає інфікований файл як ланцюжок з двох (або більше) драйверів.

Аналогічно вірус може записати свої коди в початок драйвера, а якщо в файлі міститься декілька драйверів, то і в середину файлу.

Впровадження вірусу в середину файлу

Існує кілька методів впровадження вірусу в середину файлу. У найбільш простому з них вірус переносить частину файлу в його кінець або "розсовує" файл і записує свій код в простір, що звільнився. Цей Cпособ багато в чому аналогічний методам, перерахованим вище. Деякі віруси при цьому компресують стерпний блок файлу так, що довжина файлу при зараженні не змінюється.

Іншим є метод "cavity", при якому вірус запісується у Свідомо невікорістовувані області файлу. Вірус может буті скопійованій в незадіяні області табліці Настроювання адреса DOS EXE-файлу або заголовок NewEXE-файлу, в область стека файлу COMMAND.COM ( "Lehigh") або в область текстових Повідомлень популярних компіляторів ( "NMSG"). Існують віруси, що заражають тільки ті файли, які містять блоки, заповнені яким-небудь постійним байтом, при цьому вірус записує свій код замість такого блоку.

Віруси без точки входу

Окремо слід відзначити досить незначну групу вірусів, що не мають "точки входу" (EPO-віруси - Entry Point Obscuring viruses). До них відносяться віруси, що не записують команд передачі управління в заголовок COM-файлів (JMP) і не змінюють адресу точки старту в заголовку EXE-файлів. Такі віруси записують команду переходу на свій код в будь-яке місце в середину файлу і отримують управління не безпосередньо при запуску зараженого файлу, а при виклику процедури, що містить код передачі управління на тіло вірусу. Причому виконуватися ця процедура може вкрай рідко (наприклад, при виведенні повідомлення про будь-якої специфічної помилку). В результаті вірус може довгі роки "спати" всередині файлу і вискочити на свободу тільки при деяких обмежених умовах.

Перед тим, як записати в середину файлу команду переходу на свій код, вірусу необхідно вибрати "правильний" адреса в файлі - інакше заражений файл може виявитися зіпсованим. Відомі кілька способів, за допомогою яких віруси визначають такі адреси усередині файлів.

Перший спосіб - пошук у файлі послідовності стандартного коду C / Pascal. Ці віруси шукають в заражаються файлах стандартні заголовки процедур C / Pascal і записують замість них свій код.

Другий спосіб - трасування або дизасемблювання коду файлу. Такі віруси завантажують файл в пам'ять, потім трасує або дізассембліруют його і в залежності від різних умов вибирають команду (або команди), замість яких записується код переходу на тіло вірусу.

Третій спосіб застосовується тільки резидентними вірусами - при запуску файлу вони контролюють будь-яке переривання (частіше - INT 21h). Як тільки заражає файл викликає це переривання, вірус записує свій код замість команди виклику переривання.

Компаньон - віруси

До категорії "компаньйон" відносяться віруси, що не змінюють заражають файлів. Алгоритм роботи цих вірусів полягає в тому, що для заражає файли створюється файл-двійник, причому при запуску зараженого файлу управління отримує саме цей двійник, тобто вірус.

Найбільш поширені компаньйон - віруси, що використовують особливість DOS першим виконувати .COM-файл, якщо в одному каталозі присутні два файли з одним і тим же ім'ям, але різними розширеннями імені - .COM і .EXE. Такі віруси створюють для EXE-файлів файли-супутники, що мають те ж саме ім'я, але з розширенням .COM, наприклад, для файлу XCOPY.EXE створюється файл XCOPY.COM. Вірус записується в COM-файл і ніяк не змінює EXE-файл. При запуску такого файлу DOS першим виявить і виконає COM-файл, тобто вірус, який потім запустить і EXE-файл. Деякі віруси використовують не тільки варіант COM-EXE, але також і BAT-COM-EXE.

Другу групу складають віруси, які при зараженні перейменовують файл в будь-яке інше ім'я, запам'ятовують його (для подальшого запуску файлу-господаря) і записують свій код на диск під ім'ям заражає файли. Наприклад, файл XCOPY.EXE перейменовується в XCOPY.EXD, а вірус записується під ім'ям XCOPY.EXE. При запуску управління отримує код вірусу, який потім запускає оригінальний XCOPY, що зберігається під ім'ям XCOPY.EXD. Цікавим є той факт, що даний метод працює, напевно, у всіх операційних системах - подібного типу віруси були виявлені не тільки в DOS, але в Windows і OS / 2.

У третю групу входять так звані "Path-companion" віруси, які "грають" на особливостях DOS PATH. Вони або записують свій код під ім'ям заражає файли, але "вище" на один рівень PATH (DOS, таким чином, першим виявить і запустить файл-вірус), або переносять файл-жертву на один підкаталог вище і т.д.

файлові черви

Файлові черви (worms) є, в деякому сенсі, різновидом компаньйон - вірусів, але при цьому жодним чином не пов'язують свою присутність з яким-небудь виконуваним файлом. При розмноженні вони всього лише копіюють свій код в будь-які каталоги дисків в надії, що ці нові копії будуть коли-небудь запущені користувачем. Іноді ці віруси дають своїм копіям "спеціальні" імена, щоб підштовхнути користувача на запуск своєї копії - наприклад, INSTALL.EXE або WINSTART.BAT.

Існують віруси-черв'яки, що записують свої копії в архіви (ARJ, ZIP, RAR і інші). До таких вірусів належать "ArjVirus" і "Winstart". Деякі віруси записують команду запуску зараженого файлу в BAT файли.

Не слід плутати файлові віруси-черв'яки з мережними хробаками. Перші використовують тільки файлові функції будь-якої операційної системи, другі ж при своєму розмноженні користуються мережевими протоколами.

Link-віруси

Link-віруси, як і компаньйон - віруси не змінюють фізичного вмісту файлів, проте при запуску зараженого файлу "змушують" ОС виконати свій код. Цій меті вони досягають модифікацією необхідних полів файлової системи.

На сьогоднішній день відомий єдиний тип Link-вірусів - віруси сімейства "Dir_II". При зараженні системи вони записують своє тіло в останній кластер логічного диска. При зараженні файлу віруси коректують лише номер першого кластера файла, розташований у відповідному секторі каталогу. Новий початковий кластер файлу буде вказувати на кластер, що містить тіло вірусу. Таким чином, при зараженні файлів їх довжини і вміст кластерів диска, що містять ці файли, не змінюється, а на всі заражені файли на одному логічному диску буде припадати тільки одна копія вірусу.

Після зараження дані каталогу вказують на вірус, тобто при запуску файлу управління отримують не файли, а вірус.

OBJ-, LIB-віруси і віруси у вихідних текстах

Віруси, що заражають бібліотеки компіляторів, об'єктні модулі і вихідні тексти програм, досить екзотичні і практично не поширені. Всього їх близько десятка. Віруси, що заражають OBJ- і LIB-файли, записують у них свій код у форматі об'єктного модуля або бібліотеки. Заражений файл, таким чином, не є виконуваним і нездатний на подальше поширення вірусу в свій поточний стан. Носієм же "живого" вірусу стає COM- або EXE-файл, який отримують в процесі лінковки зараженого OBJ / LIB-файла з іншими об'єктними модулями і бібліотеками. Таким чином, вірус поширюється в два етапи: на першому заражаються OBJ / LIB-файли, на другому етапі (лінковка) виходить працездатний вірус.

Зараження початкового програмного коду є логічним продовженням попереднього методу розмноження. При цьому вірус додає до вихідних текстів свій вихідний код (в цьому випадку вірус повинен містити його в своєму тілі) або свій шістнадцятковий дамп (що технічно легше). Заражений файл здатний на подальше поширення вірусу тільки після компіляції і компонування.

Алгоритм роботи файлового вірусу

Отримавши управління, вірус робить такі дії (наведено список найбільш загальних дій вірусу при його виконанні; для конкретного вірусу список може бути доповнений, пункти можуть помінятися місцями і значно розширитися):
* Резидентний вірус перевіряє оперативну пам'ять на наявність своєї копії і інфікує пам'ять комп'ютера, якщо копія вірусу не знайдена. Нерезидентний вірус шукає незаражені файли в поточному і (або) кореневому змісті, в заголовках, зазначених командою PATH, сканує дерево каталогів логічних дисків, а потім заражає виявлені файли;
* Повертає управління основній програмі (якщо вона є). Паразитичні віруси при цьому або:
а) лікують файл, виконують його, а потім знову заражають
б) відновлює програму (але не файл) в початковому вигляді (наприклад, у COM-програми відновлюється кілька перших байт, у EXE-програми обчислюється істинний стартовий адресу, у драйвера відновлюються значення адрес програм стратегії і переривання). Компаньон-віруси запускають на виконання свого "господаря", віруси-черв'яки і overwriting-віруси повертають управління ОС.

Метод відновлення програми в первісному вигляді залежить від способу зараження файлу. Якщо вірус впроваджується в початок файлу, то він або зрушує коди зараженої програми на число байт, що дорівнює довжині вірусу, або переміщує частина коду програми з її кінця в початок, або відновлює файл на диску, а потім запускає його. Якщо вірус записався в кінець файлу, то при відновленні програми він використовує інформацію, збережену в своєму тілі при зараженні файлу. Це може бути довжина файлу, кілька байт початку файлу в разі COM-файлу або декілька байтів заголовка в разі EXE-файлу. Якщо ж вірус записується в середину файлу спеціальним чином, то при відновленні файлу він використовує ще й спеціальні алгоритми.

Впровадження вірусу в DOS COM- і EXE-файли

Що Їх виконавчі файли COM або EXE, що розрізняються заголовком і способом запуску програм на виконання. Розширення імені файлу ( "* .COM" або "* .EXE") не завжди відповідає дійсному формату файлу, що, правда, ніяк не впливає на роботу програми. Файли COM і EXE заражаються по-різному, отже, вірус повинен відрізняти файли одного формату від іншого. Віруси вирішують цю задачу двома способами: одні аналізують розширення імені файлу ( "* .COM", "* .EXE"), інші - заголовок файлу. Перший спосіб далі буде називатися зараженням * .COM- (або * .EXE-) файлів, другий - зараженням COM- (або EXE-) файлів.

У більшості випадків вірус інфікує файл коректно, тобто за інформацією, що міститься в тілі вірусу, можна повністю відновити заражений файл. Але віруси, як і більшість програм, часто містять непомітні з першого погляду помилки. Через це навіть цілком коректно написаний вірус може необоротно зіпсувати файл при його зараженні. Наприклад, віруси, що розрізняють типи файлів по розширенню імені (* .COM, * .EXE), дуже небезпечні, так як псують файли, у яких розширення імені не відповідає внутрішньому формату.

Один з найбільш часто зустрічаються прикладів некоректного зараження файлу - COMMAND.COM від Windows95. Цей файл, по суті, є EXE-файлом, більш того має розмір більш 90K, що неможливо для COM-файлу. Тому віруси, які розрізняють COM / EXE файли з розширення імені і не перевіряють довжини заражаються COM-файлів (наприклад, "Junkie"), псують такий COMMAND.COM, і він стає непрацездатним.

примітивна маскування

При інфікуванні файлу вірус може виробляти ряд дій, що маскують і прискорюють його поширення. До подібних дій можна віднести обробку атрибута read-only, зняття його перед зараженням і відновлення після. Багато файлові віруси зчитують дату останньої модифікації файлу і відновлюють її після зараження. Для маскування свого поширення деякі віруси перехоплюють переривання ОС, що виникає при зверненні до захищеного від запису диску (INT 24h), і самостійно обробляють його.

швидкість поширення

Говорячи про файлові віруси, необхідно відзначити таку їх рису, як швидкість поширення. Чим швидше поширюється вірус, тим імовірніше виникнення епідемії цього вірусу. Чим повільніше поширюється вірус, тим складніше його виявити (якщо, звичайно ж, цей вірус поки невідомий антивірусних програм). Поняття "швидкого" і "повільного" вірусу (Fast infector, Slow infector) є досить відносними і використовуються тільки як характеристика вірусу при його описі.

Нерезидентні віруси часто є "повільними" - більшість з них при запуску заражає один або два-три файли і не встигає заполонити комп'ютер до запуску антивірусної програми (або появи нової версії антивіруса, налаштованої на даний вірус). Існують, звичайно ж, нерезидентні "швидкі" віруси, які при запуску шукають і заражають всі виконувані файли, однак такі віруси дуже помітні: при запуску кожного зараженого файлу комп'ютер деякий (іноді досить довгий) час активно працює з вінчестером, що демаскує вірус.

"Швидкість" резидентних вірусів зазвичай вище, ніж нерезидентних - вони заражають файли при будь-яких зверненнях до них. В результаті на диску виявляються зараженими все або майже все файли, які постійно використовуються в роботі.

Швидкість поширення резидентних файлових вірусів, що заражають файли тільки при їх запуску на виконання, буде нижче, ніж у вірусів, що заражають файли і при їх відкритті, перейменування, зміну атрибутів файлу і т.д. Багато віруси при створенні своєї копії в оперативній пам'яті комп'ютера намагаються зайняти область пам'яті з найстаршими адресами, руйнуючи тимчасову частину командного інтерпретатора COMMAND.COM. Після закінчення роботи зараженої програми тимчасова частина інтерпретатора відновлюється, при цьому відбувається відкриття файлу COMMAND.COM і, якщо вірус заражає файли при їх відкритті, його зараження. Таким чином, при запуску подібного вірусу першим буде заражений файл COMMAND.COM.

Матеріали и дані були взяті з ресурсов:
http://www.stopinfection.narod.ru
http://hackers100.narod.ru
http://broxer.narod.ru
http://www.viruslist.com
http://logic-bratsk.ru
http://www.offt.ru
http://www.almanet.info

04.11.06

читати ще в розділі



Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

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

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью