您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第3章-传统计算机病毒
第三章传统计算机病毒清华大学出版社恶意代码与计算机病毒-原理、技术和实践本章学习目标了解COM、EXE、NE、PE可执行文件格式掌握引导型病毒原理及实验掌握COM文件病毒原理及实验掌握PE文件型病毒及实验恶意代码与计算机病毒-原理、技术和实践总体概念DOS病毒定格在5000多种DOS是VXer的乐园(Aver)9x病毒ring3,ring02K病毒主要是ring3Windows文件格式变迁:−COM−EXE:MZ-NE-PE−Vxd:LE(16Bit,32Bit)恶意代码与计算机病毒-原理、技术和实践一、引导型病毒编制技术PC引导流程恶意代码与计算机病毒-原理、技术和实践加电CPU\BIOS初始化POST自检引导区、分区表检查发现操作系统执行引导程序引导区病毒取得控制权的过程:MBR和分区表装载DOS引导区运行DOS引导程序加载IO.sysMSDOS.sys加载DOS1正常的引导过程引导型病毒从软盘加载到内存寻找DOS引导区的位置将DOS引导区移动到别的位置病毒将自己写入原DOS引导区的位置2用被感染的软盘启动MBR和分区表将病毒的引导程序加载入内存运行病毒引导程序病毒驻留内存原DOS引导程序执行并加载DOS系统3病毒在启动时获得控制权恶意代码与计算机病毒-原理、技术和实践引导区病毒实验【实验目的】通过实验,了解引导区病毒的感染对象和感染特征,重点学习引导病毒的感染机制和恢复感染染毒文件的方法,提高汇编语言的使用能力。【实验内容】本实验需要完成的内容如下:−引导阶段病毒由软盘感染硬盘实验。通过触发病毒,观察病毒发作的现象和步骤学习病毒的感染机制;阅读和分析病毒的代码。−DOS运行时病毒由硬盘感染软盘的实现。通过触发病毒,观察病毒发作的现象和步骤学习病毒的感染机制;阅读和分析病毒的代码。恶意代码与计算机病毒-原理、技术和实践【实验环境】VMWareWorkstation5.5.3MS-DOS7.10【实验素材】附书资源experiment目录下的bootvirus目录。恶意代码与计算机病毒-原理、技术和实践实验过程第一步:环境安装−安装虚拟机VMWare,在虚拟机环境内安装MS-DOS7.10环境。安装步骤参考附书资源。第二步:软盘感染硬盘1、运行虚拟机,检查目前虚拟硬盘是否含有病毒。如图表示没有病毒正常启动硬盘的状态。2、在附书资源中拷贝含有病毒的虚拟软盘virus.img。恶意代码与计算机病毒-原理、技术和实践3、将含有病毒的软盘插入虚拟机引导,可以看到闪动的字符*^_^*,如左图4。按任意键进入右图画面。恶意代码与计算机病毒-原理、技术和实践第三步:验证硬盘已经被感染1、取出虚拟软盘,通过硬盘引导,再次出现了病毒的画面。恶意代码与计算机病毒-原理、技术和实践2、按任意键后正常引导了dos系统。可见,硬盘已经被感染。恶意代码与计算机病毒-原理、技术和实践第四步:硬盘感染软盘1、下载empty.img,并且将它插入虚拟机,启动电脑,由于该盘为空,如图显示。恶意代码与计算机病毒-原理、技术和实践2、取出虚拟软盘,从硬盘启动,通过命令formatA:/q快速格式化软盘。可能提示出错,这时只要按R即可。如图所示。恶意代码与计算机病毒-原理、技术和实践3、成功格式化后的结果如图所示。恶意代码与计算机病毒-原理、技术和实践4、不要取出虚拟软盘,重新启动虚拟机,这时是从empty.img引导,可以看到病毒的画面,如左图所示。按任意键进入如右图画面。可见,病毒已经成功由硬盘传染给了软盘。恶意代码与计算机病毒-原理、技术和实践二、16位可执行文件病毒编制技术COM格式−最简单的可执行文件就是DOS下的以COM(CopyOfMemory)文件。−COM格式文件最大64KB,内含16位程序的二进制代码映像,没有重定位信息。−COM文件包含程序二进制代码的一个绝对映像,也就是说,为了运行程序准确的处理器指令和内存中的数据,DOS通过直接把该映像从文件拷贝到内存来加载COM程序,系统不需要作重定位工作。恶意代码与计算机病毒-原理、技术和实践加载COM程序−DOS尝试分配内存。因为COM程序必须位于一个64K的段中,所以COM文件的大小不能超过65,024(64K减去用于PSP的256字节和用于一个起始堆栈的至少256字节)。−如果DOS不能为程序、一个PSP、一个起始堆栈分配足够内存,则分配尝试失败。−否则,DOS分配尽可能多的内存(直至所有保留内存),即使COM程序本身不能大于64K。−在试图运行另一个程序或分配另外的内存之前,大部分COM程序释放任何不需要的内存。−分配内存后,DOS在该内存的头256字节建立一个PSP(ProgramSegmentPrefix:程序段前缀)。恶意代码与计算机病毒-原理、技术和实践−创建PSP后,DOS在PSP后立即开始(偏移100H)加载COM文件,它置SS、DS和ES为PSP的段地址,接着创建一个堆栈。−DOS通过把控制传递偏移100H处的指令而启动程序。程序设计者必须保证COM文件的第一条指令是程序的入口点。−因为程序是在偏移100H处加载,因此所有代码和数据偏移也必须相对于100H。汇编语言程序设计者可通过置程序的初值为100H而保证这一点(例如,通过在源代码的开始使用语句org100H)。恶意代码与计算机病毒-原理、技术和实践PSP结构偏移大小长度(Byte)说明0000h02中断20H0002h02以节计算的内存大小(利用它可看出是否感染引导型病毒)0004h01保留0005h05至DOS的长调用000Ah02INT22H入口IP000Ch02INT22H入口CS000Eh02INT23H入口IP0010h02INT23H入口CS0012h02INT24H入口IP0014h02INT24H入口CS0016h02父进程的PSP段值(可测知是否被跟踪)0018h14存放20个SOFT号002Ch02环境块段地址(从中可获知执行的程序名)002Eh04存放用户栈地址指针0032h1E保留0050h03DOS调用(INT21H/RETF)0053h02保留0055h07扩展的FCB头005Ch10格式化的FCB1006Ch10格式化的FCB2007Ch04保留0080h80命令行参数长度0081h127命令行参数恶意代码与计算机病毒-原理、技术和实践MZ格式MZ格式:COM发展下去就是MZ格式的可执行文件,这是DOS中具有重定位功能的可执行文件格式。MZ可执行文件内含16位代码,在这些代码之前加了一个文件头,文件头中包括各种说明数据,例如,第一句可执行代码执行指令时所需要的文件入口点、堆栈的位置、重定位表等。装载过程:−操作系统根据文件头的信息将代码部分装入内存,−然后根据重定位表修正代码,−最后在设置好堆栈后从文件头中指定的入口开始执行。DOS可以把MZ格式的程序放在任何它想要的地方。恶意代码与计算机病毒-原理、技术和实践MZ标志MZ文件头其它信息重定位表的字节偏移量重定位表重定位表可重定位程序映像二进制代码恶意代码与计算机病毒-原理、技术和实践恶意代码与计算机病毒-原理、技术和实践//MZ格式可执行程序文件头structHeadEXE{WORDwType;//00HMZ标志WORDwLastSecSize;//02H最后扇区被使用的大小WORDwFileSize;//04H文件大小WORDwRelocNum;//06H重定位项数WORDwHeadSize;//08H文件头大小WORDwReqMin;//0AH最小所需内存WORDwReqMax;//0CH最大所需内存WORDwInitSS;//0EHSS初值WORDwInitSP;//10HSP初值WORDwChkSum;//12H校验和WORDwInitIP;//14HIP初值WORDwInitCS;//16HCS初值WORDwFirstReloc;//18H第一个重定位项位置WORDwOverlap;//1AH覆盖WORDwReserved[0x20];//1CH保留WORDwNEOffset;//3CHNE头位置};恶意代码与计算机病毒-原理、技术和实践NE格式为了保持对DOS的兼容性并满足Windows的需要,Win3.x中出现的NE格式的可执行文件中保留了MZ格式的头,同时NE文件又加了一个自己的头,之后才是可执行文件的可执行代码。NE类型包括了EXE、DLL、DRV和FON四种类型的文件。NE格式的关键特性是:它把程序代码、数据、资源隔离在不同的可加载区中;藉由符号输入和输出,实现所谓的运行时动态链接。恶意代码与计算机病毒-原理、技术和实践NE装载16位的NE格式文件装载程序(NELoader)读取部分磁盘文件,并生成一个完全不同的数据结构,在内存中建立模块。当代码或数据需要装入时,装载程序必须从全局内存中分配出一块,查找原始数据在文件的位置,找到位置后再读取原始的数据,最后再进行一些修正。每一个16位的模块(Module)要负责记住现在使用的所有段选择符,该选择符表示该段是否已经被抛弃等信息。恶意代码与计算机病毒-原理、技术和实践MS-DOS头DOS文件头保留区域Windows头偏移DOSStub程序信息块NE文件头段表资源表驻留名表模块引用表引入名字表入口表非驻留名表代码段和数据段程序区重定位表恶意代码与计算机病毒-原理、技术和实践COM文件病毒原理感染过程:−将开始的3个字节保存在orgcode中.−将这3个字节更改为0E9H和COM文件的实际大小的二进制编码。−将病毒写入原COM文件的后边。−在病毒的返回部分,将3个字节改为0E9H和表达式(当前地址-COM文件的实际大小-病毒代码大小)的二进制编码,以便在执行完病毒后转向执行原程序。恶意代码与计算机病毒-原理、技术和实践E9xxxxResume:E9XXXXE9AAAAAAAAXXXX源代码:jump源代码示例讲解演示COM病毒恶意代码与计算机病毒-原理、技术和实践COM文件病毒实验【实验目的】掌握COM病毒的传播原理。【实验平台】VMWareWorkstation5.5.3MS-DOS7.10MASM611恶意代码与计算机病毒-原理、技术和实践实验步骤(1)安装虚拟机VMWare,安装步骤参考网上下载的实验配套资料“解压缩目录\Application\MSDOS71\虚拟机上安装MSDOS.doc”文档。(2)在虚拟机环境内安装MS-DOS7.10环境。(3)在MS-DOSC:\MASM目录下安装MASM611,然后将binr目录下的link.exe复制到bin目录下。(4)从附书资源“experiment\com”下复制病毒程序Virus.asm及测试程序源代码BeInfected.asm。恶意代码与计算机病毒-原理、技术和实践(5)编译链接BeInfected.asm,形成BeInfected.com测试程序。(6)编译链接virus.asm,生成病毒程序virus.exe。(7)在C:\MASM\Bin目录下建立del.txt文件,并且将BeInfected.com和病毒virus.com复制到此目录下。(8)执行BeInfected.com,观察未感染前的运行结果。(9)执行virus.exe文件以感染BeInfected.com文件并且自动删除del.txt。(10)执行BeInfected.com观察感染后的结果。恶意代码与计算机病毒-原理、技术和实践【程序源码】本实验以尾部感染COM文件的病毒为例子,其中待感染COM文件源代码BeInfected.asm、病毒源文件源代码virus.asm参见附书源代码。恶意代码与计算机病毒-原理、技术和实践三、32位可执行文件病毒编制技术PE文件结构及其运行原理Win32文件型病毒编制技术从ring3到ring0概述恶意代码与计算机病毒-原理、技术和实践PE文件结构及其运行原理PE(PortableExecutable:可移植的执行体)−
本文标题:第3章-传统计算机病毒
链接地址:https://www.777doc.com/doc-1794905 .html