Макровирусы
МАКРО-ВИРУСЫ
В этой главе рассказано
о макровирусах. Подробно опи-
сана процедура и методы за-
ражения файлов. Представлен
исходный текст макровируса
с подробными комментария-
ми. Приведены основные
сведения о языке VBA, его про-
цедурах, функциях, стандарт-
ных конструкциях.
Как известно, в последнее время большое распространение получили
макро-вирусы. По сведениям из различных источников, на эти вирусы
приходится от 70 до 80 процентов заражений. Изложенный ниже мате-
риал поможет разобраться в вирусах этого типа.
Инструментарий
Для изучения макро-вирусов понадобится некоторое программное обес-
печение. В качестве "полигона" необходим MS-WORD версии 6.0 или
выше. Для изучения зашифрованных макросов может пригодиться диз-
ассемблер макросов (автор AURODREPH из VBB). Для более полного
понимания всего изложенного ниже желательно иметь базовые знания
о WORD BASIC.
Чтобы обезопасить рабочие файлы от плодов экспериментов, настоя-
тельно рекомендуется создать резервную копию шаблона
NORMAL.DOT в каталоге WINWORD6\TEMPLATE, так как именно
этот документ обычно заражается макро-вирусом. Когда все готово, са-
мое время перейти к основам макро-вирусов.
Общие сведения
Макрос - это программа, написанная на некотором языке, которая ис-
пользуется обычно для автоматизации определенных процессов внутри
приложений. В данном случае разговор пойдет о языках Visual Basic for
Applications (VBA) и WordBasic (WB), которые Microsoft использует в
своих программах (в частности, Excel, Project и PowerPoint используют
VBA, a WinWord - WB).
Далее будем считать стандартным языком VBA, так как он представля-
ет собой попытку унифицировать макроязык, сделать его общим для
всех программ Microsoft. Несмотря на то, что WB имеет некоторые от-
личия, в том числе и в синтаксисе, структура кода этих языков похожа.
При необходимости будет особо отмечено, что речь идет о WB.
Макрос VBA - это вызываемые процедуры. Они бывают двух типов:
процедуры-подпрограммы и процедуры-функции.
Процедуры-подпрограммы могут исполняться непосредственно или вы-
зываться из других макросов. Синтаксис их следующий:
Sub <Имя_Макроса>
-> код макроса <-
'Комментарий начинается с апострофа