已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
授课人:张瑜 博士,计算机病毒防治技术,海南师范大学信息学院,内容提纲,1. 计算机病毒概述2. 脚本病毒及防御技术3. 网页病毒及防御技术4. 宏病毒及防御技术5. Windows PE文件病毒及防御技术6. 批处理文件病毒技术7. U盘病毒及防御技术8. 计算机病毒演化策略,主要内容,1. PE病毒的定义2. PE病毒的特征3. PE病毒基本原理4. PE病毒的防治5. PE病毒演示实验,第5章 PE病毒技术,5.1.1 获取API函数地址,为什么要获取API函数地址Win32程序一般运行在Ring 3级,处于保护模式Win32下的系统功能调用,不是通过中断实现,而是通过调用动态连接库中的API函数实现Win32 PE病毒和普通Win32 PE程序一样需要调用API函数实现某些功能,但是对于Win32 PE病毒来说,它只有代码节,并不存在引入函数节病毒就无法象普通PE程序那样直接调用相关API函数,而应该先找出这些API函数在相应DLL中的地址,5.1 PE病毒原理,5.1.1 获取API函数地址,如何获取API函数地址要获取API函数地址,首先需要获取KERNEL32的基地址获取KERNEL32基地址的方法利用程序的返回地址,在其附近搜索Kernel32模块基地址,5.1 PE病毒原理,5.1.1 获取API函数地址,另外也可以采用以下方法:,5.1 PE病毒原理,5.1.1 获取API函数地址,对相应操作系统分别给出固定的Kernel32模块的基地址对于同一版本的Windows操作系统,Kernel32模块的地址是固定的,甚至一些API函数的大概位置都是固定的获取API函数地址在得到了Kernel32的模块地址以后,就可以在该模块中搜索所需要的API地址对于给定的API,搜索其地址可以直接通过Kernel32.dll的引出表信息搜索,同样我们也可以先搜索出GetProcAddress和LoadLibrary两个API函数的地址,然后利用这两个API函数得到所需要的API函数地址,5.1 PE病毒原理,5.1.2 搜索感染目标文件,搜索文件是病毒寻找目标文件的非常重要的功能在Win32汇编中,通常采用如下几个API函数进行文件搜索FindFirstFile根据文件名查找文件FindNextFile根据调用FindFirstFile函数时指定的一个文件名查找下一个文件FindClose用来关闭由FindFirstFile函数创建的一个搜索句柄,5.1 PE病毒原理,5.1.2 搜索感染目标文件,文件搜索算法文件搜索一般采用递归算法进行搜索,也可以采用非递归搜索方法,5.1 PE病毒原理,5.1.3 内存映射文件,内存映射文件提供了一组独立的函数,是应用程序能够通过内存指针像访问内存一样对磁盘上的文件进行访问这组内存映射文件函数将磁盘上的文件的全部或者部分映射到进程虚拟地址空间的某个位置,以后对文件内容的访问就如同在该地址区域内直接对内存访问一样简单对文件中数据的操作便是直接对内存进行操作,大大地提高了访问的速度,这对于计算机病毒来说,对减少资源占用是非常重要的,5.1 PE病毒原理,5.1.3 内存映射文件,使用内存映射文件读写文件在计算机病毒中,通常采用如下几个步骤:调用CreateFile函数打开想要映射的HOST程序,返回文件句柄hFile调用CreateFileMapping函数生成一个建立基于HOST文件句柄hFile的内存映射对象,返回内存映射对象句柄hMap调用MapViewOfFile函数将整个文件(一般还要加上病毒体的大小)映射到内存中。得到指向映射到内存的第一个字节的指针(pMem)用刚才得到的指针pMem对整个HOST文件进行操作,对HOST程序进行病毒感染调用UnMapViewFile函数解除文件映射,传入参数是pMem调用CloseHandle来关闭内存映射文件,传入参数是hMap调用CloseHandle来关闭HOST文件,传入参数是hFile,5.1 PE病毒原理,5.1.4 病毒感染PE文件的基本方法,感染文件的基本步骤(1)判断目标文件开始的两个字节是否为“MZ”;(2)判断PE文件标记“PE”;(3)判断感染标记,如果已被感染过则跳出继续执行HOST程序,否则继续;(4)获得Directory(数据目录)的个数,每个数据目录信息占8个字节;(5)得到节表起始位置:Directory的偏移地址+数据目录占用的字节数=节表起始位置;(6)得到目前最后节表的末尾偏移(紧接其后用于写入一个新的病毒节):节表起始位置+节的个数(每个节表占用的字节数28H)=目前最后节表的末尾偏移,5.1 PE病毒原理,5.1.4 病毒感染PE文件的基本方法,(7)开始写入节表写入节名(8字节);写入节的实际字节数(4字节);写入新节在内存中的开始偏移地址(4字节),同时可以计算出病毒入口位置:上节在内存中的开始偏移地址+(上节大小/节对齐+1)节对齐=本节在内存中的开始偏移地址;写入本节(即病毒节)在文件中对齐后的大小;写入本节在文件中的开始位置:上节在文件中的开始位置+上节对齐后的大小=本节(即病毒)在文件中的开始位置;修改映像文件头中的节表数目,5.1 PE病毒原理,5.1.4 病毒感染PE文件的基本方法,修改AddressOfEntryPoint(即程序入口点指向病毒入口位置),同时保存旧的AddressOfEntryPoint,以便返回HOST继续执行。更新SizeOfImage(内存中整个PE映像尺寸=原SizeOfImage+病毒节经过内存节对齐后的大小);写入感染标记(后面例子中是放在PE头中);写入病毒代码到新添加的节中:ECX=病毒长度ESI=病毒代码位置(并不一定等于病毒执行代码开始位置)EDI=病毒节写入位置(后面例子是在内存映射文件中的相应位置)11将当前文件位置设为文件末尾。PE病毒感染其他文件的方法还有很多,譬如将自己分散插入到每个节的空隙中,5.1 PE病毒原理,5.1.4 病毒感染PE文件的基本方法,文件操作相关API函数CreateFile打开和创建文件等CloseHandleSetFilePointer在一个文件中设置当前的读写位置ReadFile/ WriteFile从文件中读取数据/将数据写入文件SetEndOfFile针对一个打开的文件,将当前文件位置设为文件末尾GetFileSize获取指定文件的大小FlushFileBuffers针对指定的文件句柄,刷新内部文件缓冲区,5.1 PE病毒原理,5.1.5 病毒返回到HOST程序的方法,为了提高自己的生存能力,病毒不应该破坏HOST程序,病毒应该在病毒执行完毕后,立刻将控制权交给HOST程序返回HOST程序相对来说比较简单,病毒在修改被感染文件代码开始执行位置(AddressOfEntryPoint)时,会保存原来的值。这样,病毒在执行完病毒代码之后用一个跳转语句跳到这段代码处继续执行即可,5.1 PE病毒原理,5.1.6 PE概念病毒感染分析,感染PE文件的概念性病毒Immunity.exe不驻留内存,也没有采用加密、压缩、变形等“高深”技术启动时首先获取所需API函数的地址然后在当前目录查找host_pe.exe文件,若没有找到,则在Windows目录、System/System32目录下继续查找,为了便于测试,示例代码只在当前目下查找找到host_pe.exe后,判断是否是PE文件、是否已感染等,若条件满足,则在host_pe.exe中添加名为.BFish的节,并将病毒代码写入其中,然后修改文件头,使入口地址指向刚添加的节,最后,将全部节未对齐大小设置为对齐后的大小,制造不存在空洞的假象,从而达到避免被CIH病毒寄生感染的免疫目的,5.1 PE病毒原理,5.1.6 PE概念病毒感染分析,Immunity的主流程图,5.1 PE病毒原理,5.1.7 示例病毒感染测试与手工修复,将host_pe.exe与Immunity.exe拷贝到同一个目录,并运行Immunity.exeImmunity感染host_pe.exe,使其文件大小增加4096字节,除此之外,文件修改日期等“外在”属性不变为了便于比较分析,将被感染后的host_pe.exe重命名为host_pe2.exe,5.1 PE病毒原理,5.1.7 示例病毒感染测试与手工修复,感染前后,节表发生的变化,5.1 PE病毒原理,5.1.7 示例病毒感染测试与手工修复,感染前后,映像文件头发生的变化,5.1 PE病毒原理,5.1.7 示例病毒感染测试与手工修复,感染前后,可选映像头发生的变化,5.1 PE病毒原理,5.1.7 示例病毒感染测试与手工修复,手工清除Immunity病毒首先,利用工具软件删除病毒添加的节,或节中的部分内容(分布在正常内容中的病毒代码),5.1 PE病毒原理,5.1.7 示例病毒感染测试与手工修复,修改入口地址,使其指向.text代码节 (病毒代码仍然在host_pe.exe文件中)。感染标志、可选映像头中MajorLinkerVersion等,需另行修改,5.1 PE病毒原理,5.1.7 示例病毒感染测试与手工修复,彻底“摘除”host_pe2.exe中的“垃圾”代码,5.1 PE病毒原理,5.1.8 CIH病毒分析,病毒简介CIH病毒是一种文件型病毒,又称Win95.CIH、Win32.CIH、PE_CIH,是感染Windows 95/98环境下PE格式文件的病毒CIH病毒一共有五个版本,目前最流行的是V1.2版CIH病毒没有改变宿主文件的大小,而是利用“空洞”,将病毒化整为零,拆分成若干块,插入到宿主文件中查找CIH病毒的最简单方法就是用资源管理器中“工具查找文件或文件夹”的“高级包含文字”,以特征字符串“CIHv”查找所有.EXECIH病毒发作时直接往计算机主板BIOS芯片和硬盘写乱码,造成主机无法启动CIH病毒首开攻击计算机硬件之先河,也开启了Windows病毒的新纪元,5.1 PE病毒原理,5.1.8 CIH病毒分析,VxD技术简介VxD(Virtual Device Drivers,虚拟设备驱动),是微软专门为Windows制定的设备驱动程序接口规范有很多应用软件都需要使用VxD机制来实现某些比较特殊的功能因为VxD程序具有比其他类型应用程序更高的优先级,而且更靠近系统底层资源只有这样,反病毒软件才有可能全面、彻底地控制系统资源CIH病毒利用VxD技术、通过Windows 9x的异常处理机制(Exception)进入系统Ring0级。在应用程序下故意产生一个异常,并修改IDT表(中断地址表)中的处理程序地址,使其指向病毒代码,再显式进入此异常(主要为直接调用INT 3H中断),就可以申请系统共享内存将病毒驻留,5.1 PE病毒原理,5.1.8 CIH病毒分析,CIH病毒的驻留(初始化)当运行感染了CIH病毒的PE文件时,由于该病毒修改了该程序的入口地址,从而首先调入内存执行,其驻留主要过程:用SIDT指令取得IDT base address(中断描述符表基地址),然后把IDT的INT 3H 的入口地址改为指向CIH自己的INT 3H程序入口部分;执行INT 3H指令,进入CIH自身的INT 3H入口程序,这样,CIH病毒就可以获得Windows最高级别的权限Ring 0。病毒在这段程序中首先检查调试寄存器DR0的值是否为0,用以判断先前是否有CIH病毒已经驻留;如果DR0的值不为0,则表示CIH病毒程式已驻留,病毒程序恢复原先的INT 3H入口,然后正常退出INT 3H,跳到过程;如果DR0值为0,则CIH病毒将尝试进行驻留;,5.1 PE病毒原理,5.1.8 CIH病毒分析,如果内存申请成功,则从被感染文件中将原先分成多块的病毒代码收集起来,并进行组合后放到申请到的内存空间中再次调用INT 3H中断进入CIH病毒体的INT 3H入口程序,调用INT 20H来完成调用一个IFSMgr_InstallFileSystemApiHook的子程序,在Windows内核中文件系统处理函数中挂接钩子,以截取文件调用的操作,这样一旦系统出现要求开启文件的调用,则CIH病毒的传染部分程序就会在第一时间截获此文件;将同时获取的Windows操作系统默认的IFSMgr_Ring0_FileIO(核心文件输入/输出)服务程序的入口地址保留在DR0寄存器中,以便于CIH病毒调用;恢复原先的IDT中断表中的INT 3H入口,退出INT 3H;根据病毒程序内隐藏的原文件的正常入口地址,跳到原文件正常入口,执行正常程序,5.1 PE病毒原理,5.1.8 CIH病毒分析,CIH病毒的感染CIH病毒的传染部分实际上是病毒在驻留内存过程中调用Windows 内核底层函数IFSMgr_InstallFileSystemApiHook函数挂接钩子时指针指示的那段程序,其感染过程如下:文件的截获。每当系统出现要求开启文件的调用时,驻留内存的CIH病毒就截获该文件。病毒调用INT20的VxD call UniToBCSPath系统功能调用取回该文件的名称与路径;EXE文件的判断。对该文件名进行分析,若文件扩展名不为“.EXE”或不满足PE格式、尚
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 摩托车空气净化装置创新创业项目商业计划书
- 挖掘机耐磨部件创新创业项目商业计划书
- 挖掘机械噪音降低技术创新创业项目商业计划书
- (全新版)知识产权交易合同英文版
- “十五五”期间新兴支柱产业的发展重点与推进路径
- 人教版(2024)六年级全一册信息科技第19课 光照温度要适宜 教案
- 人教版(2024)五年级全一册信息科技第22课 兔子增长有规律(1) 教案
- 2025年淮北辅警协警招聘考试真题含答案详解(夺分金卷)
- 2025年海西州辅警协警招聘考试真题附答案详解(a卷)
- 2025年阿勒泰辅警协警招聘考试备考题库及答案详解(基础+提升)
- 电力工程项目进度管理实践经验
- 辽宁本溪2019-2023年中考满分作文32篇
- 肿瘤治疗相关呕吐防治指南
- 创新眼科医生进修汇报
- 老旧排水管网更新改造工程可行性研究报告
- 盆底超声在女性盆底功能障碍诊疗中的应用
- 孕产妇心理健康课件
- 给排水管道施工交叉作业安全措施
- 电影院安全应急预案
- 新生儿吸氧的护理
- 家庭奖惩计划表
评论
0/150
提交评论