第5章节Wìndows病毒剖析.pptVIP

  • 11
  • 0
  • 约2.98万字
  • 约 69页
  • 2017-04-01 发布于四川
  • 举报
第5章节Wìndows病毒剖析

计算机病毒与反病毒技术 主要内容 Wind32 PE病毒的基本原理 脚本病毒的基本原理及其防治 宏病毒的基本原理及其防治 5.1.1 获取API函数地址 为什么要获取API函数地址 Win32程序一般运行在Ring 3级,处于保护模式 Win32下的系统功能调用,不是通过中断实现,而是通过调用动态连接库中的API函数实现 Win32 PE病毒和普通Win32 PE程序一样需要调用API函数实现某些功能,但是对于Win32 PE病毒来说,它只有代码节,并不存在引入函数节 病毒就无法象普通PE程序那样直接调用相关API函数,而应该先找出这些API函数在相应DLL中的地址 5.1.1 获取API函数地址 如何获取API函数地址 要获取API函数地址,首先需要获取KERNEL32的基地址 获取KERNEL32基地址的方法 ①利用程序的返回地址,在其附近搜索Kernel32模块基地址 5.1.1 获取API函数地址 5.1.1 获取API函数地址 ②对相应操作系统分别给出固定的Kernel32模块的基地址 对于同一版本的Windows操作系统,Kernel32模块的地址是固定的,甚至一些API函数的大概位置都是固定的 获取API函数地址 在得到了Kernel32的模块地址以后,就可以在该模块中搜索所需要的API地址 对于给定的API,搜索其地址可以直接通过Kernel32.dll的引出表信息搜索,同样我们也可以先搜索出GetProcAddress和LoadLibrary两个API函数的地址,然后利用这两个API函数得到所需要的API函数地址 5.1.2 搜索感染目标文件 搜索文件是病毒寻找目标文件的非常重要的功能 在Win32汇编中,通常采用如下几个API函数进行文件搜索 FindFirstFile 根据文件名查找文件 FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 FindClose 用来关闭由FindFirstFile函数创建的一个搜索句柄 5.1.2 搜索感染目标文件 文件搜索算法 文件搜索一般采用递归算法进行搜索,也可以采用非递归搜索方法 5.1.3 内存映射文件 内存映射文件提供了一组独立的函数,是应用程序能够通过内存指针像访问内存一样对磁盘上的文件进行访问 这组内存映射文件函数将磁盘上的文件的全部或者部分映射到进程虚拟地址空间的某个位置,以后对文件内容的访问就如同在该地址区域内直接对内存访问一样简单 对文件中数据的操作便是直接对内存进行操作,大大地提高了访问的速度,这对于计算机病毒来说,对减少资源占用是非常重要的 5.1.3 内存映射文件 使用内存映射文件读写文件 在计算机病毒中,通常采用如下几个步骤: ①调用CreateFile函数打开想要映射的HOST程序,返回文件句柄hFile ②调用CreateFileMapping函数生成一个建立基于HOST文件句柄hFile的内存映射对象,返回内存映射对象句柄hMap ③调用MapViewOfFile函数将整个文件(一般还要加上病毒体的大小)映射到内存中。得到指向映射到内存的第一个字节的指针(pMem) ④用刚才得到的指针pMem对整个HOST文件进行操作,对HOST程序进行病毒感染 ⑤调用UnMapViewFile函数解除文件映射,传入参数是pMem ⑥调用CloseHandle来关闭内存映射文件,传入参数是hMap ⑦调用CloseHandle来关闭HOST文件,传入参数是hFile 5.1.4 病毒感染PE文件的基本方法 感染文件的基本步骤 (1)判断目标文件开始的两个字节是否为“MZ”; (2)判断PE文件标记“PE”; (3)判断感染标记,如果已被感染过则跳出继续执行HOST程序,否则继续; (4)获得Directory(数据目录)的个数,每个数据目录信息占8个字节; (5)得到节表起始位置:Directory的偏移地址+数据目录占用的字节数=节表起始位置; (6)得到目前最后节表的末尾偏移(紧接其后用于写入一个新的病毒节): 节表起始位置+节的个数×(每个节表占用的字节数28H)=目前最后节表的末尾偏移 5.1.4 病毒感染PE文件的基本方法 (7)开始写入节表 ①写入节名(8字节); ②写入节的实际字节数(4字节); ③写入新节在内存中的开始偏移地址(4字节),同时可以计算出病毒入口位置: 上节在内存中的开始偏移地址+(上节大小/节对齐+1)×节对齐=本节在内存中的开始偏移地址; ④写入本节(即病毒节)在文件中对齐后的大小; ⑤写入本节在文件中的开始位置: 上节在文件中的开始位置+上节对齐后的大小=本节(即病毒)在文件中的开始位置; ⑥修改映像文件头中的节表数目 5.1.4 病毒感染PE文件的

文档评论(0)

1亿VIP精品文档

相关文档