《计算机病毒》实验报告

wuqian 贡献于2012-07-02

作者 yutingxiong  创建于2011-03-08 05:48:00   修改者左岸  修改于2012-07-02 06:20:00字数2335

文档摘要:1.了解文件型病毒的原理 2.了解PE文件结构 3.了解文件型病毒的发现方法 4.了解病毒专杀工具的基本原理
关键词:

2011-2012学年第二学期《计算机病毒》实验报告 实验名称 姓 名_ _______ 学号____________ 实验日期 2012 年3 月 27 日 实验报告日期 2012年3 月 30 日 成 绩 ___________________ 一. 实验目的 1.了解文件型病毒的原理 2.了解PE文件结构 3.了解文件型病毒的发现方法 4.了解病毒专杀工具的基本原理 二. 实验环境 Windows LaborDayVirus OllyDBG PE Explorer UltraEdit-32 三. 实验实际完成内容及结果分析 一.验证利用OllyDBG修改病毒感染程序 (1)进入实验平台,单击工具栏“实验目录”按钮,进入文件型病毒实验目录。新建文件夹“text”,将文件夹“hei”下的hei0.exe(未感染病毒的可执行程序)复制到text目录中。点击工具栏“LaborDayVirus”按钮,将目录中的LaborDayVirus.exe也复制到text目录中。将系统时间调整为5月1日,双击text目录下LaborDayVirus.exe感染hei0.exe文件。 2011-2012学年第二学期《计算机病毒》实验报告 观察hei0.exe感染病毒前后的大小变化 感染前 感染后 (2)单击工具栏“OllyDBG”按钮启动ollyDbg1.10,单击文件菜单中的“打开”项,选择要修复的hei0.exe。由于病毒修改了原程序的入口点,因此会有程序入口点超出代码范围的提示 单击“确定”按钮继续,程序会停在病毒修改后的程序入口点(hei0.exe的入口点为0x00403200)上,在代码中找到最后一个jmp指令处(病毒感染完成后将跳转回原程序),按F2设置断点,按F9运行,程序会在刚设置的jmp断点上中断,查看EAX寄存器的值(EAX=0x401000注意上面提到的断点,下面还会用到),按F7单步执行到下一条指令地址,点选鼠标右键,选择菜单中的“用ollyDump脱壳调试进程”,选中重建输入表方式1,方式2各脱壳一次,分别保存为1.exe、2.exe。测试两个程序是否还具有病毒的传染特性 设置断点: 2011-2012学年第二学期《计算机病毒》实验报告 1.exe 2.exe 这是一个病毒测试程序 测试结果:没有感染性 二.病毒感染机制分析 (1)准备一个没有感染病毒的可执行程序和一个感染病毒的可执行程序,将其分别重命名为hei0.ex_,hei.ex_,并复制到一个新的目录下用于调试、对比。 (2)进入实验平台,点击工具栏中的“PE”按钮,使用PE Explorer分别打开hei.ex_和hei0.ex_文件,对比两个文件入口点(OEP--Address of Entry Point)和Image Base并分别记录。 OEP ImageBase hei0.ex_ 000010000 00400000h hei.ex_ 00003200 00400000h 点击“View”菜单中的“Section Headers”进入Section Headers页面,比对Section Header的数据信息并记录到下面表格。 2011-2012学年第二学期《计算机病毒》实验报告 Virtual Size Virtual Address Size of Raw Data Point to Raw Data hei0.ex_的.data 00000027h 00403000h 00000200h 00000800h hei.ex_的.data 00001A00h 00403000h 00001A00h 00000800h 由于一般文件型病毒只有代码段,数据和代码都存在一起。所以可以断定hei.ex_的.data段多出的数据即为病毒代码和数据。 (3)进入实验平台,单击工具栏中“UE”按钮,打开Ultra Editor,选择“文件”菜单中的“比较文件”功能对hei0.ex_和hei.ex_进行二进制比对,可以发现在hei.ex_文件的0xa00处开始的数据块为存储于.data节的病毒代码 「注」 该段数据在.data节是因为hei0.ex_和hei.ex_的.data节都开始于各自文件偏移的Point to Raw Data处。这段数据是病毒代码是因为0xa00 - 0x800 + 0x403000 = 0x403200(感染病毒文件hei.ex_ OEP的虚地址(VA))。 (4)使用Ultra Editor打开hei.ex_定位光标到hei.ex_的.data块的Point to Raw Data位置,并以16进制形式查找hei0.ex_的入口点(注意字节顺序),将查找到的数据的文件偏移记录 161C 。计算该偏移的保护模式内存虚拟地址: 481C。 2011-2012学年第二学期《计算机病毒》实验报告 偏移记录:481C-3200=161C 161C+0a00=201c (5)定位上面例子中hei.ex_的jmp断点,在jmp指令上面会发现如下的汇编代码: 0x40481c在病毒代码之后为被加载到内存的病毒数据的存储区,0x1000为hei0.exe OEP的RVA,0x1000在反汇编代码中的表示是0010。     (6)进入实验平台,单击工具栏中的“实验目录”按钮,利用上面的方法分别对文件分析目录下的已感染和未感染文件进行调试,注意比对感染病毒文件和原文件特征,将各个病毒文件的最后一个跳转指令的目的地址记录到如下表。 2011-2012学年第二学期《计算机病毒》实验报告 2011-2012学年第二学期《计算机病毒》实验报告 文件 原文件的 入口地址 感染病毒文件的 入口地址 感染病毒文件的最后一个跳转目的地址 mspaint.exe 00034CF5 00053800 34CF5 notepad.exe 000073A5 00013000 73A5 wordpad.exe 0000119B 00003A00 119B   2011-2012学年第二学期《计算机病毒》实验报告 2011-2012学年第二学期《计算机病毒》实验报告 (7)通过以上的分析,就可以初步断定,该病毒的感染方式是:    插入式                             。 四. 实验总结和体会 .text:是在编译或汇编结束时产生的一种块,它的内容全是指令代码;     .rdata:是运行期只读数据;     .data:是初始化的数据块;     .idata:包含其他外来DLL的函数及数据信息,即输入表;     .rsrc:包含模块的全部资源,如图标、菜单、位图等。

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享文档获得金币 ] 2 人已下载

下载文档