- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验六、COM类型病毒分析实验.doc
实验六、COM类型病毒分析实验
实验所属系列:系统安全实验系列 实验对象: 本科
实验时数(学分): 4
实验开发教师: 郝玉洁、谌黔燕
【实验开设方式】
个人或分组。
【实验设备与环境】
个人计算机一台
Windows 系统平台。
MASM开发环境。
【实验方法步骤】
编写一个实验性“原”程序。完成以下功能:
( 运行时屏幕显示:“hello”。
代码如下:
0100: 8cc8 mov ax,cs
0102: 8ed8 mov ds,ax
0104: ba0f01 mov dx,010f
0107: b409 mov ah,09h
0109: cd21 int 21h ;显示字符串hello
010b: bc4c mov ah,4ch
010d: CD21 int 21h
010f: 48h 65h 6ch 6ch 6fh 20h 0dh 0ah 24h ;hello $
(2) 使用DEBUG调试工具将其改为嵌如“病毒代码”的实验性“病毒”程序,完成以下功能:
将“病毒”程序合并到“原”程序后部,形成合并后的文件。
将“原”程序头部指令改为JMP或CALL,程序入口改到“病毒”程序入口。
带毒程序如下:
0100: jmp 0118 ;对原程序的修改,转向病毒程序
0102: mov ds,ax
0104: mov dx,010f
0107: mov ah,09h
0109: int 21h ;字符串显示
010b: mov ah,4ch
010d: int 21h
010f: 48h 65h 6ch 6ch 6fh 20h 0dh 0ah 24h ;hello $
0118: mov ah,00 ;假设的病毒代码入口
011a: int 16h ;键盘输入ESC键,确认则继续,否则循环
011c: cmp 1bh
011e: jnz 0118
0120: mov word ptr[100],c88c ;将病毒修改的代码恢复
0126: push cs
0127: mov si,100
012a: push si
012b: retf ;返回程序入口执行
保留“原”程序入口地址。
存盘是注意程序已经增长 。
运行程序,验证是否感染“病毒”。
在“病毒”程序中通过输入ESC键确认“该程序已被感染”。
(3) 观察带毒程序:
判断程序的第一条指令
将其改为首条JMP或CALL指令,转向病毒程序入口地址。
检查病毒体长度。由于为改变“原”程序的主体,程序增长。
运行验证,输入ESC键则显示仍为“hello”。否则,程序死循环。
【实验报告】
提交所有程序的程序清单。
提交程序数据字典。
【实验注意事项】
实验性“病毒”程序只能用于实验性“原”程序的感染,切不可随意使用。
【相关知识点】
1、文件型病毒
文件型病毒在感染时,采取直接连接、覆盖、修改、插空、跳转等方法,把自身代码插入到正常程序中,通过修改正常程序的执行顺序达到破坏正常程序代码、导致正常程序不能运行的结果。
( 覆盖方式:病毒程序将原可执行文件全部覆盖。
( 原码方式:病毒在程序编译是插入到原程序中。
( 嵌入方式:病毒将自身嵌入到已有的程序文件中。该方式也是最普遍的病毒感染方式。
嵌入方式的文件型病毒修改可执行文件的方法又分为两种:一种是不增加文件的长度,将病毒代码插入到可执行文件的每个节中;另一种是增加文件节的个数,将病毒代码附加在可执行文件前面或后面形成“前附式病毒”和“后附式病毒”。
“前附式病毒”是病毒代码直接附加在宿主程序代码前,执行宿主程序时病毒代码被先行执行;“后附式病毒”把自身代码附加到宿主程序最后,并修改宿主程序的第一条指令为跳转或调用指令,使程序的首指令仍然是病毒的第一条指令。本次实验探讨的是将病毒程序附加在可执行程序的后面。如下图所示。
后附式病毒示意图
2、文件型病毒的工作原理
,病毒程序也被激活,成为动态病毒,并被首先执行。
【评分要求】100分
0分
0分
10分
10分
28
程序入口被篡改为一条转移指令或者调用指令。
如:JMP xxxx
或 CALL xxxx
正常
程序
正常
程序
病 毒
程 序
病毒体程序附着在正常程序后部
文档评论(0)