宏病毒相关研究

原文地址:https://www.52pojie.cn/thread-706440-1-1.html

基础知识

宏与宏病毒

宏(英文Macro),广义上的定义是:宏就是把一系列的指令组织成一独立的命令,类似C语言中#define宏定义,避免同一动作的一再重复;狭义上,宏特指office系列办公软件中的宏,Microsoft Office中对宏的定义为“宏就是能够组织在一起的,可以作为一个独立命令来执行的一系列Word 命令,它能使日常工作变得容易。”本文中提到的宏,采用了狭义的定义,即office办公软件中的宏。

使用office文档文件(demo1.doc)时,有时候我们会遇到如下图所示的“安全警告”,这说明该文档文件中含有宏,并且office软件设置了“宏禁用”功能。
这里写图片描述

这个时候,单击“启用内容”按钮,宏就会执行。
使用快捷键Alt+F11可以打开vb编辑器,查看宏代码:
这里写图片描述

本例中的宏很简单,其作用就是弹出一个对话框。
执行恶意功能的宏就是宏病毒。

宏病毒是使用宏语言编写的恶意程序,存在于字处理文档、电子数据表格、数据库、演示文档等数据文件中,可以在office系列办公软件中运行,利用宏的功能将自己复制到其他数据文件中。宏病毒感染的是数据文件。宏病毒与传统的病毒有很大的不同,它不感染可执行文件,而是潜伏在Microsoft Office文档中,一旦用户打开含有宏的文档,其中的宏就会被执行。宏是使用VBA编写的,编写过程简单,任何人只需掌握一些基本的宏编写技能就可以编写出破坏力巨大的宏病毒。

宏病毒的强大是建立在强大的VBA组件的基础上的。同时,宏病毒与系统平台无关,任何计算机如果能够运行Microsoft Office办公软件,都有可能感染宏病毒。随着Microsoft Office系列办公软件成为电子文档的工业标准,Word,Excel和PowerPoint等已成为个人计算机和互联网上广泛使用的文档格式,宏病毒成为传播最广泛,危害最大的一类病毒。

根据文档载体的不同,宏病毒可以细分为很多种,Word、Excel、Access、PowerPoint等都有想应的宏病毒。

2.2 VB基础
宏是使用VB语言编写的,所以在进一步研究宏病毒前,我们必须掌握VB的基础知识。本文介绍的VB知识,只是VB的皮毛,以便于在接下来宏病毒分析过程中,我们可以迅速理清宏代码。

打开demo3.doc,我们以其为例进行讲解。其代码如下:

Sub autoopen()
b
End Sub
Function b()
MsgBox ActiveDocument.BuiltInDocumentProperties(5)
End Function

上述宏代码中,含有一个Sub和一个Function。sub和function都类似于C中的函数。sub在VB中被称为过程,function被称为函数;sub没有返回值,function有返回值;一段宏一定是从sub开始执行的。在demo3中定义了一个过程 autoopen(),“End Sub”表示这个过程的结束。

(2)VB基本函数
demo3 中“MsgBox ActiveDocument.BuiltInDocumentProperties(5)”调用了VB基本函数“MsgBox”,参数是”ActiveDocument.BuiltInDocumentProperties(5)”。这里实际上是“MsgBox (参数)”,但是VBA的容错率较高,不写括号,宏代码依然能够执行。即使我们将“MsgBox”写成“MSgbOx”,宏代码依然能够执行。一些宏病毒就是使用大小写混淆,增加病毒分析难度。

除了MsgBox,VB中还有很多基本函数,各位可以百度“VB函数大全”。

(3)对象
VB中存在很多对象,如Application对象,Document对象,Adobd.stream对象等。对象实际上是代码和数据的组合,我们在使用对象时,要么使用对象的属性(就是数据),要么使用对象的方法(就是代码)。通过 “对象.属性/方法”的方式使用对象的属性/方法。ActiveDocument.BuiltInDocumentProperties(5)中就是使用了ActiveDocument对象的BuiltInDocumentProperties()方法,参数是5。

阅读更多
换一批

没有更多推荐了,返回首页