--计算机病毒原理及防范技术-第7章 计算机病毒基本技巧
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机病毒原理及防范技术 Virus
wk.baidu.com
第1章 计算机病毒基本技巧
7.1 病毒隐藏技巧 7.2 病毒简单加密 7.3 病毒的多态 7.4 花指令和变形术 7.5 代码优化
7.6 异常处理
教学要求:
❖ 理解:病毒的代码优化和异常处理 ❖ 掌握:病毒隐藏原理,病毒的多态、花指令和变形技
术
7.1 病毒隐藏技巧
7.1 病毒隐藏技巧 (续)
❖ 引导型病毒的隐藏技巧
• 另一种方法是专门针对杀毒软件的。随着反病毒技术地提高,一些杀 毒软件采用直接读写磁盘扇区的方法而不是采用INT 13H中断方法读 写磁盘扇区,这样能够解决引导型病毒采用第一种方式进行隐藏而造 成的问题。为了针对杀毒软件采用的这种技术,引导型病毒在计算机 系统启动任何程序的时候(包括反病毒程序),开始修改DOS执行程 序的中断功能,将被病毒感染的扇区恢复成原样,这样即使反病毒软 件采用直接读写磁盘扇区的方法看到的也是正常的磁盘扇区,当反病 毒软件运行结束后再重新感染相应的磁盘扇区。
❖ 一个被简单加密的病毒一般有如下几个部分:
▪ 解密算法(解开被加密的代码,以便病毒执行)。 ▪ 病毒主体代码(被加密的病毒代码)。 ▪ 跳转(病毒解密完毕后,跳到解密代码部分执行解密语句)。
7.2 病毒简单加密(续)
❖ 简单加密的加密算法比较简单,密钥也比较固定。由于所 有的病毒代码都是完全相同的,如果该病毒的特征代码被 提取出来,同样是不能逃脱反病毒软件的查杀。
7.1 病毒隐藏技巧 (续)
❖ 引导型病毒的隐藏技巧
▪ 引导型病毒一般采用两种方法进行隐藏:
• 第一种方法是改变基本输入输出系统中断INT 13H(BIOS磁盘中断, 利用它可以实现磁盘扇区的读写)的入口地址使其指向病毒代码,一 旦有调用INT 13H读被感染扇区的请求时,引导型病毒将原来没有感 染过的内容返回给调用程序。这样,任何DOS程序都无法觉察道病毒 的存在,如果反病毒软件无法首先将内存中的病毒清除(也就是说首 先恢复被替换的INT 13H中断服务程序),那么要彻底清除这种病毒 是非常困难的。
7.1 病毒隐藏技巧 (续)
❖ 文件型病毒的隐藏技巧
图7.3 文件型病毒使用的隐藏技术
7.1 病毒隐藏技巧 (续)
❖ 宏病毒的隐藏技巧
▪ 由于宏病毒离不开它的运行环境(Office软件)和宏,所以宏病 毒的隐藏技术和引导型病毒以及文件型病毒比起来要简单很多, 只要在Word/Excel中禁止菜单“文件→模板”或者“工具→宏” 就可以隐藏病毒了,可以通过宏病毒代码删除菜单项以及宏病毒 用自己的FileTemplates和ToolsMacro宏替代系统缺省的宏 就可以了。
7.3 病毒的多态
❖ 所谓病毒的多态,就是指一个病毒的每个样本的代码都不相同,它表 现为多种状态。采用多态技术的病毒由于病毒代码不固定,这样就很 难提取出该病毒的特征码,所以只采用特征码查毒法的杀毒软件是很 难对这种病毒进行查杀的。
❖ 多态病毒是改进了的加密病毒,由变化的解密头和加密的代码组成。 多态病毒运行时,先执行的是解密代码,对加密代码解密,然后执行 刚解密的代码,也就是实现传播的主体代码。
7.1 病毒隐藏技巧 (续)
❖ 文件型病毒的隐藏技巧
▪ 文件型病毒通过替换DOS或者基本输入输出系统(BIOS)的文件 系统的相关调用,在打开文件的时候将文件的内容恢复成未被感 染时的状态,在关闭文件的时候重新进行感染。
▪ 因为操作系统访问文件的方式、方法非常多,所以实现文件型病 毒的完全隐藏是一件非常困难的事情,一套比较完整的隐藏技术 应该包括对下面几个方面的处理,如图7.3所示。
▪ 远程线程技术好比一棵寄生在大树上的蔓藤,一旦目标进程被注射,这段新生的 线程就成为目标进程的一部分代码了,只要目标进程不被终止,原进程无论是否 还在运行都不会再影响到执行结果了。
7.2 病毒简单加密
❖ 病毒的简单加密是指对病毒的某些主题代码采用固定的密 钥进行加密,这样静态反汇编出来的代码就是经过加密处 理过的,因此在某种程度上可以起到保护病毒程序的目的。
❖ 隐藏是病毒的天性,是病毒的一个最基本特征。任何病毒都希望在被 感染的计算机中长期隐藏不被发现,因为病毒只有在不被发现的情况 下,才能实施其破坏行为。为了达到这个目的,许多病毒使用了各种 不同的技术来躲避反病毒软件的检测。
❖ 病毒的隐藏技巧,贯穿于3个模块(引导、感染、表现)之中,使病 毒在运行过程中直到其表现(破坏)发作以前都尽可能地不被人发觉。 引导型病毒、文件型病毒、宏病毒以及Windows环境下的病毒采用了 不同的技术达到这个目的。
7.1 病毒隐藏技巧 (续)
❖ 进程隐藏
▪ 但是在一些特定的场合里,必须让进程之间可以互相访问和管理,这就是“远程 线程”技术的初衷,这个技术实现了进程之间的跨内存空间访问,其核心是产生 一个特殊的线程,这个线程能够将一段执行代码连接到另一个进程所处的内存空 间里,作为另一个进程的其中一个非核心线程来运行,从而达到交换数据的目的, 这个连接的过程被称为“注射”(injection)。
7.1 病毒隐藏技巧 (续)
❖ 进程隐藏
▪ 实现进程或模块隐藏是一个成功病毒所必须具备的特征。 ▪ 进程隐藏最常用的开源代码有RootKit,发现隐藏进程并杀死该隐藏进程可以参
照瑞星的进程管理工具,也可以使用更专业的Icesword工具(Icesword工具可 以同时杀死多个进程,这对多个相互守护的进程特别有效)。 ▪ 还有一种比较流行的进程隐藏技术,就是“远程线程注射”(remotethread injection) 。通常情况下,各个进程的内存空间是不可以相互访问的,这也是 为程序能够稳定运行打下基础,这个访问限制让所有进程之间互相独立,这样一 来,任何一个非系统关键进程发生崩溃时都不会影响到其他内存空间里的进程执 行,从而使NT架构的稳定性远远高于Win9x架构。
7.3 病毒的多态(续)
❖ 简单加密病毒之所以代码固定,是因为它采用了相同的加密算法和密 钥。如果病毒在每次感染其他文件时,改变密钥对解密后的病毒代码 进行加密,那么会得到不同的加密代码。这样,由于病毒每次感染时 所取的密钥不相同,那么最后得到的加密后的病毒代码也会不同。
wk.baidu.com
第1章 计算机病毒基本技巧
7.1 病毒隐藏技巧 7.2 病毒简单加密 7.3 病毒的多态 7.4 花指令和变形术 7.5 代码优化
7.6 异常处理
教学要求:
❖ 理解:病毒的代码优化和异常处理 ❖ 掌握:病毒隐藏原理,病毒的多态、花指令和变形技
术
7.1 病毒隐藏技巧
7.1 病毒隐藏技巧 (续)
❖ 引导型病毒的隐藏技巧
• 另一种方法是专门针对杀毒软件的。随着反病毒技术地提高,一些杀 毒软件采用直接读写磁盘扇区的方法而不是采用INT 13H中断方法读 写磁盘扇区,这样能够解决引导型病毒采用第一种方式进行隐藏而造 成的问题。为了针对杀毒软件采用的这种技术,引导型病毒在计算机 系统启动任何程序的时候(包括反病毒程序),开始修改DOS执行程 序的中断功能,将被病毒感染的扇区恢复成原样,这样即使反病毒软 件采用直接读写磁盘扇区的方法看到的也是正常的磁盘扇区,当反病 毒软件运行结束后再重新感染相应的磁盘扇区。
❖ 一个被简单加密的病毒一般有如下几个部分:
▪ 解密算法(解开被加密的代码,以便病毒执行)。 ▪ 病毒主体代码(被加密的病毒代码)。 ▪ 跳转(病毒解密完毕后,跳到解密代码部分执行解密语句)。
7.2 病毒简单加密(续)
❖ 简单加密的加密算法比较简单,密钥也比较固定。由于所 有的病毒代码都是完全相同的,如果该病毒的特征代码被 提取出来,同样是不能逃脱反病毒软件的查杀。
7.1 病毒隐藏技巧 (续)
❖ 引导型病毒的隐藏技巧
▪ 引导型病毒一般采用两种方法进行隐藏:
• 第一种方法是改变基本输入输出系统中断INT 13H(BIOS磁盘中断, 利用它可以实现磁盘扇区的读写)的入口地址使其指向病毒代码,一 旦有调用INT 13H读被感染扇区的请求时,引导型病毒将原来没有感 染过的内容返回给调用程序。这样,任何DOS程序都无法觉察道病毒 的存在,如果反病毒软件无法首先将内存中的病毒清除(也就是说首 先恢复被替换的INT 13H中断服务程序),那么要彻底清除这种病毒 是非常困难的。
7.1 病毒隐藏技巧 (续)
❖ 文件型病毒的隐藏技巧
图7.3 文件型病毒使用的隐藏技术
7.1 病毒隐藏技巧 (续)
❖ 宏病毒的隐藏技巧
▪ 由于宏病毒离不开它的运行环境(Office软件)和宏,所以宏病 毒的隐藏技术和引导型病毒以及文件型病毒比起来要简单很多, 只要在Word/Excel中禁止菜单“文件→模板”或者“工具→宏” 就可以隐藏病毒了,可以通过宏病毒代码删除菜单项以及宏病毒 用自己的FileTemplates和ToolsMacro宏替代系统缺省的宏 就可以了。
7.3 病毒的多态
❖ 所谓病毒的多态,就是指一个病毒的每个样本的代码都不相同,它表 现为多种状态。采用多态技术的病毒由于病毒代码不固定,这样就很 难提取出该病毒的特征码,所以只采用特征码查毒法的杀毒软件是很 难对这种病毒进行查杀的。
❖ 多态病毒是改进了的加密病毒,由变化的解密头和加密的代码组成。 多态病毒运行时,先执行的是解密代码,对加密代码解密,然后执行 刚解密的代码,也就是实现传播的主体代码。
7.1 病毒隐藏技巧 (续)
❖ 文件型病毒的隐藏技巧
▪ 文件型病毒通过替换DOS或者基本输入输出系统(BIOS)的文件 系统的相关调用,在打开文件的时候将文件的内容恢复成未被感 染时的状态,在关闭文件的时候重新进行感染。
▪ 因为操作系统访问文件的方式、方法非常多,所以实现文件型病 毒的完全隐藏是一件非常困难的事情,一套比较完整的隐藏技术 应该包括对下面几个方面的处理,如图7.3所示。
▪ 远程线程技术好比一棵寄生在大树上的蔓藤,一旦目标进程被注射,这段新生的 线程就成为目标进程的一部分代码了,只要目标进程不被终止,原进程无论是否 还在运行都不会再影响到执行结果了。
7.2 病毒简单加密
❖ 病毒的简单加密是指对病毒的某些主题代码采用固定的密 钥进行加密,这样静态反汇编出来的代码就是经过加密处 理过的,因此在某种程度上可以起到保护病毒程序的目的。
❖ 隐藏是病毒的天性,是病毒的一个最基本特征。任何病毒都希望在被 感染的计算机中长期隐藏不被发现,因为病毒只有在不被发现的情况 下,才能实施其破坏行为。为了达到这个目的,许多病毒使用了各种 不同的技术来躲避反病毒软件的检测。
❖ 病毒的隐藏技巧,贯穿于3个模块(引导、感染、表现)之中,使病 毒在运行过程中直到其表现(破坏)发作以前都尽可能地不被人发觉。 引导型病毒、文件型病毒、宏病毒以及Windows环境下的病毒采用了 不同的技术达到这个目的。
7.1 病毒隐藏技巧 (续)
❖ 进程隐藏
▪ 但是在一些特定的场合里,必须让进程之间可以互相访问和管理,这就是“远程 线程”技术的初衷,这个技术实现了进程之间的跨内存空间访问,其核心是产生 一个特殊的线程,这个线程能够将一段执行代码连接到另一个进程所处的内存空 间里,作为另一个进程的其中一个非核心线程来运行,从而达到交换数据的目的, 这个连接的过程被称为“注射”(injection)。
7.1 病毒隐藏技巧 (续)
❖ 进程隐藏
▪ 实现进程或模块隐藏是一个成功病毒所必须具备的特征。 ▪ 进程隐藏最常用的开源代码有RootKit,发现隐藏进程并杀死该隐藏进程可以参
照瑞星的进程管理工具,也可以使用更专业的Icesword工具(Icesword工具可 以同时杀死多个进程,这对多个相互守护的进程特别有效)。 ▪ 还有一种比较流行的进程隐藏技术,就是“远程线程注射”(remotethread injection) 。通常情况下,各个进程的内存空间是不可以相互访问的,这也是 为程序能够稳定运行打下基础,这个访问限制让所有进程之间互相独立,这样一 来,任何一个非系统关键进程发生崩溃时都不会影响到其他内存空间里的进程执 行,从而使NT架构的稳定性远远高于Win9x架构。
7.3 病毒的多态(续)
❖ 简单加密病毒之所以代码固定,是因为它采用了相同的加密算法和密 钥。如果病毒在每次感染其他文件时,改变密钥对解密后的病毒代码 进行加密,那么会得到不同的加密代码。这样,由于病毒每次感染时 所取的密钥不相同,那么最后得到的加密后的病毒代码也会不同。