COM病毒实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
COM病毒实验
应用场景
计算机病毒是一个程序,一段可执行码,对计算机的正常使用进行破坏,使得电脑无法正常使用甚至整个操作系统或者电脑硬盘损坏。就像生物病毒一样,计算机病毒有独特的复制能力。计算机病毒可以很快地蔓延,又常常难以根除。它们能把自身附着在各种类型的文件上。当文件被复制或从一个用户传送到另一个用户时,它们就随同文件一起蔓延开来。这种程序不是独立存在的,它隐蔽在其他可执行的程序之中,既有破坏性,又有传染性和潜伏性。轻则影响机器运行速度,使机器不能正常运行;重则使机器处于瘫痪,会给用户带来不可估量的损失。通常就把这种具有破坏作用的程序称为计算机病毒。
除复制能力外,某些计算机病毒还有其它一些共同特性:一个被污染的程序能够传送病毒载体。当你看到病毒载体似乎仅仅表现在文字和图像上时,它们可能也已毁坏了文件、再格式化了你的硬盘驱动或引发了其它类型的灾害。若是病毒并不寄生于一个污染程序,它仍然能通过占据存贮空间给你带来麻烦,并降低你的计算机的全部性能。
病毒往往会利用计算机操作系统的弱点进行传播,提高系统的安全性是防病毒的一个重要方面,但完美的系统是不存在的,过于强调提高系统的安全性将使系统多数时间用于病毒检查,系统失去了可用性、实用性和易用性,另一方面,信息保密的要求让人们在泄密和抓住病毒之间无法选择。病毒与反病毒将作为一种技术对抗长期存在,两种技术都将随计算机技术的发展而得到长期的发展。
无论是.com 文件还是.exe 文件,或是操作系统的可执行文件,当启动已感染文件型病毒的程序时,暂时中断该程序,病毒完成陷阱的布置、感染工作后,再继续执行host 程序,使计算机使用者初期觉得可正常执行,而实际上,在执行期间,病毒已暗做传染工作,时机成熟时,病毒发作。
.com 文件结构比较简单,是一种单段执行结构,起源于cpm-86 操作系统。.com 文件包含程序的一个绝对映像,其文件代码和运行时内存映像完全相同,起始执行偏移地址为100H,对应于文件的偏移0。为了能准确地处理指令和内存中的数据,ms-dos 通过直接把该映像从文件拷贝到内存而加载.com 程序,不作任何改变。为加载一个.com 程序,ms-dos 首先试图分配内存。因为.com 程序必须位于一个64KB 的段中,所以.com 文件的大小不能超过65024B(64KB 减去用于psp 的256B 和用于一个起始堆栈的至少256B)。
VM
实验目标:
●了解COM 病毒的原理;
●掌握COM 病毒的分析及其修改过程;
●能够根据病毒特征还原COM 文件。
实验环境:
虚拟机: Windows XP,gold.exe,Masm for Windows 集成实验环境 2011
实验过程指导:
使用masm 自制无害感染com 病毒virus.exe,感染自制com 执行文件,通过Gold.exe 查看感染前后com 文件的变化,并适当改值复原 程序,达到对COM病毒原理及其修复的方法的掌握。实验内容包括:
1)自制 可执行文件;
2)自制virus.exe 无害com 修改病毒;
3)感染 程序,并查看感染后的com 文件;
4)修复 感染程序。
启动虚拟机,并设置虚拟机的IP地址,以虚拟机为目标主机进行实验。个别实验学生可以以2人一组的形式,互为攻击方和被攻击方来做实验。
1. 自制
(1)在c 盘目录“C:\JMSOFT\Masm”,下新建两个文件“c.asm”和“virus.asm”。如下
.
“c.asm”中代码,如下图:
(2)编译生成“c.exe”,运行如下图
(3)可在当前目录下查看新生成文件,如下图:
(4)将“c.exe”转换为“”程序,如下图:
(5)可查看新生成的“”文件,如下图:
2. 自制virus.exe
(1)在“virus.asm”中添加代码,如下图
(2)编译生成可执行文件,如下图:
(3)查看生成文件,如下图:
3. 感染并查看
(1)“”正常执行。如下图所示:
(2)感染,如下图
(3)感染后文件变化,如下图:
(4)复制“”一个新文件“”,以便后面修改使用。执行“”结果如下图:
4. 修复
(1)对“”进行修复,如下图:
(2)将“c.exe”转换为“”程序,如下图:
(3)然后将“test1”改为“”,执行,如下图
(4)下图为使用“glod.exe”汇编工具,查看相关修改前后的文件内容,如下图:
【实验思考】
1. 在实验中对 进行修复,修复后未能输出“he”两个字母,为什么?(查看反汇编后代码)
2. 尝试能否完全修复 文件(本实验只为讲述原理)。