особливість макро-мов призначена для автоматичного опрацювання даних у великих організаціях або в глобальних мережах і дозволяє організувати, так званий “автоматизований документообіг“. З іншого боку, можливості макро-мов таких систем дозволяють вірусу переносити свій код в інші файли, і в такий спосіб інфікувати їх. На сьогоднішній день відомі чотири системи, для яких існують віруси - Microsoft Word, Excel, Office97 і AmiPro. У цих системах віруси одержують керування при відкритті або закритті інфікованого файлу, перехоплюють стандартні файлові функції і потім інфікують файли, до яких яким-небудь чином йде звертання. Більшість макро-вірусів є резидентними, тобто вони активні не тільки в момент відкриття або закриття файлу, а з часу активації і до того часу, поки активний редактор.
Фізичне розташування вірусу всередині файлу залежить від його формату, що у випадку продуктів Microsoft надзвичайно складно - кожен файл-документ представляються послідовністю блоків даних (кожний із котрих також має свій власний формат), об'єднаних між собою за допомогою великої кількості службових даних. Цей формат називається OLE2 - Object Linking and Embedding. Структура файлів Microsoft Office нагадує ускладнену файлову систему дисків DOS, як от “кореневий каталог“ файла-документа або таблиці вказує на основні підкаталоги різноманітних блоків даних, декілька таблиць FAT містять інформацію про розташування блоків даних у документі і т.д. Більше того, система Office Binder, що підтримує стандарти Word і Excel дозволяє створювати файли, які одночасно містять один або декілька документів у форматі Word і одну або декілька таблиць у форматі Excel. Word-віруси спроможні інфікувати лише Word-документи, а Excel-віруси - тільки Excel-таблиці, і все це можливо в межах одного дискового файла.
При інфікації деякі макро-віруси перевіряють наявність своєї копії в об'єкті і повторно себе не копіюють. Проте існують інші макро-віруси, які не роблять цього і переписують свій код при кожній інфікації. В цьому випадку, якщо в інфікованому файлі або області системних макросів вже визначений макрос, ім'я якого збігається з назвою макро-вірусу, то попередній макрос знищується.
Для того, щоб залишити виконуваний код у пам'яті Windows, існує три вже відомі способи. Найпростіший спосіб - зареєструвати програму, як один з додатків, що працюють у даний момент. Для цього програма реєструє свою задачу, вікно якої може бути схованим, реєструє свій оброблювач системних подій і т.д. Другий спосіб - виділити блок системної пам'яті за допомогою DPMI-викликів і скопіювати в нього свій код. Третій спосіб - залишитися резидентно, як драйвер Windows. Перехоплення звертань до файлів провадиться шляхом перехоплення програмного чи системного виклику. Потім резидентні Windows-віруси діють приблизно, так само, як і DOS-віруси, що перехоплюють звертання до файлів і інфікують їх.
Більшість макро-вірусів можна вважати резидентними, оскільки вони присутні в області системних макросів на протязі всього часу роботи редактора. Вони, так само, як резидентні завантажувальні і файлові віруси перехоплюють системні події, щоб перехопити управління і провести саморозмноження. До подібних подій відносяться різноманітні системні виклики, що виникають при роботі з документами Word і таблицями Excel, тобто виклик пункту меню та натискання на якусь клавішу або досягнення якогось моменту часу (відкриття, закриття, створення, друк і т.д.). Для перехоплення подій макро-віруси перевизначають один або декілька системних макросів або функцій.
Мережні віруси.
Мережні віруси використовують для свого поширення протоколи або команди комп'ютерних мереж і електронної пошти. До мережних відносяться віруси, які для поширення активно використовують протоколи і можливості локальних і глобальних мереж. Основним принципом роботи мережного вірусу є можливість самостійно передати свій код на віддалений сервер або робочу станцію. “Повноцінні“ мережні віруси при цьому володіють ще і можливістю запустити на виконання свій код на віддаленому комп'ютері або, принаймні, “підштовхнути“ користувача до запуску інфікованого файла. Існує помилкова думка, що мережним є будь-який вірус, що поширюється в комп'ютерній мережі. Найбільшої популярності набули мережні віруси кінця 1980-х, їх також називають мережними хробаками (worms). Для свого поширення вони використовували помилки і недокументовані функції глобальних мереж того часу, що дозволило вірусам передавати свої копії із серверу на сервер і запускали їх на виконання. У випадку з вірусами Моріса епідемія захопила декілька глобальних мереж у США. Мережні віруси минулого поширювалися в комп'ютерній мережі і так само, як і компаньйони-віруси, не змінювали файли або сектор на дисках. Вони проникали в пам'ять комп'ютера з комп'ютерної мережі, визначали мережні адреси інших комп'ютерів і розсилали по цих адресах свої копії. Ці віруси іноді також створювали робочі файли на дисках системи, але могли взагалі не звертатися до ресурсів комп'ютера (за винятком оперативної пам'яті). Після декількох епідемій мережних вірусів помилки в мережних протоколах і програмному забезпеченні були виправлені. В результаті за наступні десять років не було зафіксовано жодного випадку інфікації мережним вірусом, як втім не з'явилося і жодного нового мережного вірусу такого типу.
Знову проблема мережних вірусів виникла лише на початку 1997-го року з появою вірусів нового типу. Один з них використовує можливості електронної пошти Microsoft Mail. Тобто він створює новий лист, що містить інфікований файл-документ, потім вибирає зі списку адрес MS-Mail кілька випадкових адрес і розсилає по ним інфікований лист. Оскільки багато користувачів встановлює параметри MS-Mail таким чином, що при одержанні листа автоматично запускається MS Word, тому вірус “автоматично“ впроваджується в комп'ютер адресата інфікованого листа. Цей вірус ілюструє перший тип сучасного мережного вірусу, що об'єднує можливості вмонтованої в Word/Excel мови Basic, протоколи