Создаем вирус и антивирус (Гульев) - страница 35

VBA также позволяет работать с переменными. Как любой язык структурного типа, VBA имеет типичные конструкции:

цикл «For-next»:

Sub Counter ’Процедура

Infect_Num=0

For Count=1 to 10 ’Цикл от 1 до 10

Infect_Num=Infect_Num+Count

Next Count

MsgBox ”Достигли максимального количества заражений”

End Sub

условие «If-then»:

Sub Infect_Check

If Infect_Num=0 Then MsgBox ”Файл не заражен”

End Sub

конструкция «With-end with» (используется для работы с несколькими свойствами конкретного объекта):

Sub ChangeProperties

With Selection

.Font.Bold=True

.Font.ColorIndex=3 ’красный цвет

End With

End Sub

селектор «Select case-end case»:

Sub Check_Infection

Select Case Infect_Num

Case 0

MsgBox ”Файл не заражен”

Case is > 0

MsgBox ”Файл заражен”

Case is < 0

Infect_Num=0

End Case

End Sub

Полезным инструментом для работы с VBA является окно отладки. В нем можно трассировать код, вносить в него изменения и делать многое другое. В процессе отладки для остановки на некоторое время исполнения кода используются флаги. Чтобы можно было анализировать содержимое конкретных переменных и/или инструкций, после каждой команды выводятся сообщения (в отладчике VBA для прерывания исполнения кода можно ставить также контрольные точки). Нужно обратить внимание на разнообразные аргументы функций. Как уже говорилось, структура их следующая:

Function <Имя>(Аргументы)

[.]

End Function

Аргументами могут быть константы, переменные или выражения. Процедуры могут быть и без аргументов.

Function Get_Name()

Name=Application.UserName

End Function

Некоторые функции всегда требуют фиксированное число аргументов (до 60). Другие функции имеют несколько обязательных аргументов, а остальные могут отсутствовать.

После того, как основы VBA стали понятны, идем дальше. Итак, вирусы и «троянцы» на VBA.

Язык VBA универсален, и тому есть две причины. Во-первых, этот язык прост в изучении и использовании, поскольку он является языком визуального программирования, он ориентирован на события, а не на объекты. С его помощью без особых затрат времени очень легко создавать сложные модули. Во вторых, можно использовать большое количество предопределенных функций, облегчающих работу. В третьих, имеются функции (или макросы) автоматического выполнения, что позволяет упростить написание процедур автокопирования, занесения в память и прочих используемых стандартными DOS-вирусами.

Помимо этого, преимуществом VBA является свойство переносимости. VBA работает под Win 3.x, Win95, WinNT, MacOS и так далее, то есть в любой операционной системе, где можно запустить приложения его поддерживающие.