- Розмір шрифту: Більший Менший
- Переглядів: 3732
- Коментарів: 0
- Поскаржитись
Що таке комп'ютерні віруси і як вони працюють 2 частина
Віруси, що впроваджуються у файли
Існує три великі групи файлів, які безпосередньо може запускати користувач, вводячи їх ім'я в системному запрошенні операційної системи MSDOS. До них відносяться здійснимі файли у форматі COM і EXE, а також командні файли, що мають розширення BAT.
Здійснимі файли у форматі COM і EXE в корені відрізняються від командних файлів з розширенням BAT. На відміну від останніх, вони складаються з команд центрального процесора, тобто містять машинні інструкції. Разом з командами процесора в здійснимих файлах можуть розміщуватися дані: тексти повідомлень, числові константи і т. д. Щоб створити здійснимий файл, використовують спеціальні програми-транслятори і редактори зв'язків.
Файли у форматах COM і EXE відрізняються в основному тільки своїм форматом. Здійснимий файл COM складається з одних інструкцій процесора і даних. Розмір COM файлу зазвичай не перевищує 65536 байт. Природно це накладає великі обмеження на програми в цьому форматі.
Коли ви запускаєте програму у форматі COM, операційна система прочитує файл програми з жорсткого диска або дискети і розміщує його в оперативній пам'яті, вибираючи для цього вільну ділянку. Потім операційна система передає управління на найпершу команду завантаженої програми. Після закінчення роботи програми вона повертає управління операційною системі.
Файли у форматі EXE мають значно складнішу структуру, чим файли COM. За рахунок цього вони можуть мати більший розмір, що перевищує 65536 байт.
Окрім процесорних команд і даних, файли у форматі EXE містять спеціальний заголовок, розташований на самому початку файлу. Заголовок EXE -файлов має складний формат. На наш погляд, його точний формат представляє інтерес в основному для авторів вірусів. Тому ми приведемо тут тільки самі загальні відомості.
Перше поле заголовка містить сигнатуру EXE -файла - два символу MZ. Ви можете проглянути будь-який EXE -файл в текстовому редакторові. Два перших символу завжди будуть MZ. Деякі здійснимі файли можуть мати іншу сигнатуру - ZM. Вони також розпізнаються операційною системою як файли у форматі EXE.
Потім в заголовку файлу слідує таблиця налаштування. Коли користувач запускає EXE -файл, операційна система завантажує його в оперативну пам'ять, а потім настроює його відповідно до таблиці налаштування. Тільки після цього управління передається на першу команду програми, адреса якої також записана в заголовку файлу. Детально формат заголовка EXE -файла описаний в 18 томі з серії книг "Бібліотека системного програміста".
Командні BAT -файлы - це звичайні текстові файли, що полягають з команд операційної системи. Для створення такого файлу досить мати будь-який текстовий редактор, який може зберігати файли в звичайному текстовому форматі. Як приклад можна привести текстовий редактор Notepad, що входить до складу операційної системи Windows.
Окрім команд операційної системи і викликів інших програм, командний файл може містити рядки коментарів. Такі рядки позначаються командою REM і повністю ігноруються. Ви можете скористатися рядками коментарів, щоб додати текстовий опис до командного файлу або щоб тимчасово заборонити виконання окремих команд такого файлу :
- REM Підключаємо драйвери локальної мережі
- lsl.com
- ne2000.com
- ipxodi.com
- netx /c=c:\net\net.cfg
- REMlogin - команда тимчасово відключена -
Коли ви запускаєте командний файл, операційна система прочитує його рядок за рядком і виконує прочитані команди
Заражаючи файл, віруси тим або іншим способом записують свій код всередину виконуваного файлу і змінюють його так, щоб після запуску файлу управління отримав код вірусу. Вірус може записати свій код кінець, початок або середину файлу. Вірус також може розділити свій код декілька блоків і розмістити їх в різних місцях зараженої програми.
Далі вірус відпрацьовує свої завдання: заражає інші файли, встановлює в пам'яті власні резидентні модулі і виконує інші функції. Потім вірус, як правило, передає управління зараженій програмі і далі вона виконується як завжди.
Зазвичай зміни в заражених файлах видно неозброєним оком у будь-якому редакторові, в якого можна завантажити здійснимий файл перегляду. Крім того помітно збільшення довгі зараженого файлу. Деякі віруси, знаходячись резидентними в пам'яті, можуть маскуватися. В цьому випадку зміни в зараженому файлі будуть непомітні.
На малюнках 1 і 2 ми привели ділянки дампу файлу MOUSECOM до і після його зараження вірусом OneHalf. Без зусиль можна помітити, що заражений файл довше незараженого на 3544 байт.
Мал. 1. Дамп файлу MOUSECOM
Ви також можете побачити зміни в самому здійснимому файлі. Помітно, що змінені декілька перших байт файлу (у них записана команда переходу на код вірусу). У кінці зараженого файлу з'явилися нові дані - це код самого вірусу.
Мал. 2. Дамп файлу MOUSECOMзараженого вірусом OneHalf
{tab Вірус 1}
Віруси-супутники
Як відомо, в операційній системі MS - DOS існують три типи файлів, які користувач може запустити на виконання. Це командні або пакетні файли. Командні файли складаються з команд операційної системи і мають розширення імені файлу BAT.
У одному каталозі можуть одночасно знаходитися декілька здійснимих файлів, що мають однакове ім'я, але різне розширення імені. Наприклад, в каталозі DOS записані файли MSD.COM і MSD.EXE. Ви можете створити в цьому ж каталозі командний файл MSD.BAT.
Коли ви бажаєте виконати програму і вводите її ім'я в системному запрошенні MS - DOS, ви зазвичай не вказуєте розширення файлу. Який же файл в цьому випадку буде виконаний?
Виявляється, в цьому випадку операційна система MS - DOS буде виконувати файл, що має розширення COM. Якщо в поточному каталозі або в каталогах, вказаних в змінній середовища PATHіснують тільки файли з розширенням EXE і BAT, то виконуватися буде файл з розширенням EXE.
Коли вірус-супутник заражає файл, що має розширення EXE чи BAT, він створює в цьому ж каталозі ще один файл, що має таке ж ім'я і розширення COM. Вірус записує себе в цей COM -файл.
В якості ілюстрації сказаного ми приводимо вміст каталогу C :\PROGRAM. Спочатку в нім був записаний один файл програми розрахунку CALC.EXE. Після зараження цього файлу вірусом-супутником в каталозі C:\PROGRAM з'явився файл CALC.COM:
- C:\PROGRAM>DIR
- Volume in drive C is LIBRARY
- Volume Serial Number is 1F64-394F
- Directory of C :\PROGRAM
- . <DIR> 26.11.95 18:55
- . <DIR> 26.11.95 18:55
- CALC COM 1 754 30.09.93 6:20
- CALC EXE 29 390 30.09.93 6:20
- 2 file(s) 31 144 bytes
- 2 dir(s) 26 599 424 bytes free
Якщо, запускаючи заражену програму CALC.EXE, ви наберете в системному запрошенні її ім'я без розширення, то буде запущений вірус-супутник, файл якого має розширення COM :
C:\PROGRAM>CALC
Отримавши управління, вірус може виконувати різні дії: заражати інші файли, встановлювати резидентний модуль, і т. д. Потім вірус може запустити саму заражену програму, що має розширення EXE.
На відміну від інших файлових вірусів, віруси-супутники зазвичай ніяк не змінюють заражені програми. Тому для лікування заражених файлів досить просто видалити файли вірусу, що мають розширення COM.
Для маскування віруси супутники зазвичай встановлюють для файлу вірусу атрибут "Прихований". В цьому випадку команда DIR не відобразить ім'я файлу вірусу.
- C:\PROGRAM>DIR
- Volume in drive C is LIBRARY
- Volume Serial Number is 1F64-394F
- Directory of C :\PROGRAM
- . <DIR> 26.11.95 18:55
- . <DIR> 26.11.95 18:55
- CALC EXE 29 390 30.09.93 6:20
- 1 file(s) 29 390 bytes
- 2 dir(s) 26 599 424 bytes free
Проте таке маскування дуже слабке. Досить вказати команді DIR параметр /A і вона покаже список усіх файлів в поточному каталозі, включаючи приховані і системні файли.
{tab Вірус 2}
Вірус CloneWar
Під таємничою назвою CloneWar ховається ціла група вірусів-супутників. У уникненні плутанини їх розрізняють по довжині файлу вірусу-супутника. На час написання книги було відомо 5 варіантів вірусу CloneWar довгою 228, 246, 261, 546 і 923 байт. Механізм їх поширення повністю відповідає описаній нами технології. Вірус виконує пошук в поточному каталозі здійснимих файлів з розширенням EXE. Потім він створює файл з таким же ім'ям, але з розширенням COM і записує себе в нього.
Коли користувач вводить після системного запрошення ім'я зараженої програми без розширення, то запускається файл з розширенням COM, який містить вірус. Він заражає інші EXE файли, а потім запускає заражену програму.
Найкоротша з відомих версій вірусу CloneWar має довжину 228 байт. Версія 246 вірусу CloneWar містить усередині себе невеликий вірш
Beyond
The rim of the star - light
My love
Is wand'ring in star - flight
I know
He'll find in star - clustered reaches
Love
Strange love a star woman teaches.
I know
His journey ends never
His star trek
Will go on forever.
But tell him
While he wanders his starry sea
Remember, remember me.
Найбільша версія вірусу, що має довжину 923 байти, перевіряє значення системного таймера і в деяких випадках виконує через динамік комп'ютера невелику мелодію. Потім код вірусу зациклюється, викликаючи зависання комп'ютера.
З часом ідея вірусу-супутника отримала подальше розвиток. Хтось з письменників вірусів резонно помітив, що будь-який здійснимий файл можна перейменувати, а потім створити файл з таким же ім'ям, але що містить код вірусу. Коли користувач запускає свою програму, насправді запускається програма-вірус. Вона заражає інші програми, а потім завантажує в оперативну пам'ять і виконує справжню програму користувача.
Прості віруси-супутники використовують всього декілька функцій операційної системи - пошук файлу із заданим ім'ям в поточному каталозі, перейменування файлу і створення нового файлу. Подібні засоби роботи з файлами існують фактично в усіх системах програмування. Тому написати подібний вірус може практично будь-який початкуючий програміст, у розпорядженні якого є система розробки програм, яка може створювати здійснимі файли.
{tab Вірус 3}
Вірус Carbuncle
Вірус Carbuncle також є вірусом-супутником, але працює не так, як вірус CloneWar.
При запуску вірус Carbuncle створює в поточному каталозі файл CARBUNCL.COM. Для маскування цьому файлу привласнюється атрибут прихований. Потім вірус шукає в поточному каталозі здійснимі файли. Якщо вірус знайде в каталозі файл з розширенням EXE, то він змінює його розширення на CRP і створює пакетний файл з таким же ім'ям. Цей файл отримує розширення BAT. У нього вірус записує декілька команд MS - DOS, що дозволяють запустити файл вірусу CARBUNCL.COM і саму заражену програму. Нижче ми навели приклад такого файлу для зараженої програми PROGRAM.EXE.
-
@ECHO OFF
CARBUNCL
RENAME PROGRAM.CRP PROGRAM.EXE
PROGRAM.EXE
RENAME PROGRAM.EXE PROGRAM.CRP
CARBUNCL
Якщо користувач вирішить запустити заражену програму і введе в системному запрошенні ім'я програми без вказівки розширення, то операційна система прогляне увесь каталог у пошуках файлу з таким ім'ям. Оскільки файл з розширенням EXE вона не виявить, то буде виконаний файл з розширенням BAT.
Щоб замаскувати виконання декількох команд пакетного файлу, команда @ECHO OFF відключає вивід на екран виконуваних команд пакетного файлу.
Наступний рядок пакетного файлу, створеного вірусом, запускає сам вірус CARBUNCL.COM. Потім зараженому файлу повертається його справжнє розширення EXE і виконується його запуск. Після того, як програма відпрацює, її розширення знову замінюється на CRP. У кінці знову запускається файл вірусу CARBUNCL.COM.
Оскільки після зараження програми файл з розширенням EXE вже не існує, то якщо при запуску програми вказати її повне ім'я розширенням, операційна система не зможе знайти цей файл і на екрані з'явиться застережливе повідомлення:
Bad command or file name
Вірус CloneWar поводиться в цій ситуації значно краще. В цьому випадку відразу буде запущена справжня програма. Вірус просто не отримає управління.
Вірус Carbuncle займається не лише поширенням своїх копій. В деяких випадках він може знищити заражений файл. При запуску файл вірусу перевіряє значення системного таймера і якщо воно менше або рівно 16, то вірус записує свій код у файл першого зараженого файлу в поточному каталозі.
Усередині файлу вірусу містяться наступні текстові рядки:
-
@ECHO OFF
CARBUNCL
RENAME
PC CARBUNCLE : Crypt Newsletter 14
{tab Вірус 4}
Віруси в COM і EXE файлах
Формат здійснимих COM -файлов досить простий, щоб будь-який програміст середньої кваліфікації, знайомий з мовою асемблера, зміг написати вірус.
Основна ідея таких вірусів полягає в тому, що вірус записує свій код всередину файлу, що заражається. У найпростішому випадку вірус дописує свій код в кінець файлу. Потім вірус прочитує і зберігає декілька перших байт файлу, що заражається. На їх місце записується команда передачі управління коду вірусу.
Після запуску зараженої програми управління передається першій команді, заміненій вірусом на команду переходу. Тому управління відразу передається вірусу.
Отримавши управління, вірус виконує дії, визначені його автором. Зазвичай у цей момент вірус заражає інші здійснимі файли, встановлює власні резидентні модулі, здійснює інші протиправні дії.
Закінчивши цю роботу, вірус відновлює перші команди зараженого файлу і передає на них управління. Тепер починає працювати справжня програма в її незмінному вигляді.
Віруси, що заражають здійснимі файли, можуть записувати свій код не лише в кінець файлу. Як приклад можна привести вірус Anarchy.2048 і Megadeth. Коли Megadeth заражає здійснимий COM-файл програми, він прочитує і зберігає у кінці файлу перші байти коду програми. Потім вірус записує свій код в початок файлу, поверх тільки що збереженого кода програми.
Під час запуску програми код вірусу відразу отримує управління. Виконавши усі свої дії, він відновлює початок зараженого файлу, знищуючи свій код і передає йому управління.
Ми вже говорили, що розмір здійснимих файлів у форматі COM зазвичай не перевищує 65536 байт. В принципі, можна створити COM файли більшого розміру, але для цього вони повинні самостійно завантажувати себе. Більшість вірусів, COM, що заражають, -файлы, стежать, щоб сумарний розмір файлу і вірусу не перевищував цього значення. Якщо ця умова не виконується, зараження не відбувається.
Серед вірусів, що заражають тільки COM -файлы, існують і свого роду шедеври. Наприклад, вірус Micro - 92 має довжину всього 92 байти. Вірус резидентний. Існує тільки в якості академічного. Автор вірусу, Соловйов Михайло Анатолійович, прислав його безпосередньо Лозинскому, гарантуючи, що він не отримає подальшого поширення.
Проте рекорд протримався недовго. Ігор Данилов створив вірус Micro - 66 завдовжки 66 байт. Він існує тільки в якості колекційного екземпляра, ніколи не поширювався і поширюватися не буде. На момент написання книги найкоротший з відомих нам вірусів мав довжину 58 байт.
Процедура зараження вірусами EXE -файлов трохи відрізняється від тільки що розглянутої нами. Такі віруси повинні враховувати, що EXE -файлы мають заголовок. При зараженні вірус записує себе у файл програми і може змінити заголовок EXE -файла.
{tab Вірус 5}
Віруси в драйверах
У операційній системі MS - DOS існує спеціальний вид програм, що називаються драйверами. Драйвери запускаються тільки на етапі завантаження операційної системи, під час її ініціалізації і інтерпретації файлу конфігурації CONFIG.SYS. Файли драйверів зазвичай мають розширення SYS.
Ряд вірусів розроблений спеціально для зараження драйверів. Такі віруси дописують свій код до файлу драйвера і модифікують його таким образом, щоб вірус залишився в оперативній пам'яті комп'ютера після завантаження драйвера.
Основні файли операційної системи IO.SYS і MSDOS.SYS також можуть бути заражені. Цікаво, що в Microsoft Windows 95 файл MSDOS.SYS не містить виконуваного коду, а призначений для зберігання параметрів конфігурації системи:
- [Paths]
- WinDir=C :\WIN
- WinBootDir=C :\WIN
- HostWinBootDrv=C
- [Options]
- BootMulti=1
- BootGUI=1
- Network=0
;The following lines are required for compatibility with other programs.
;Do not remove them (MSDOS.SYS needs to be >1024 bytes).
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxa
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxs
Природно, у разі зараження цього файлу Windows перестане правильно працювати.{/tabs}
Відео дня
Головне на ПК-манія
Где купить бюджетный смартфон
Интернет-магазин Device Market предлагает более 1000 моделей телефонов с ценами от 299 гривен. Если ...
Hard новини 2021-08-13 14:05:15
Бумажные пакеты: где и как их выгодно купить
В настоящее время бумажные пакеты имеют широкую сферу применения. В какую компанию стоит обратиться ...
Software новини 2021-07-08 09:41:08
Плівка для ламінування: переваги, види, правильне ...
Ламінація відноситься до найбільш затребуваного способу захисту поліграфічних виробів. Для цього ...
Hard новини 2021-07-08 09:36:02
Розділи









