计算机病毒教学ppt课件3-计算机病毒的基本机制.ppt
1,计算机病毒Computer Virus,汪洁,2,计算机病毒的结构,ECHO ONREM 文件名 VIRUS.BATREM 本病毒感染自动执行批处理文件IFDRIVE=A:GOTO END123IFDRIVE=C:GOTO END123IF%COMSPEC%=C:WINDOWSCOMMAND.COM SET DRIVE=A:IF%COMSPEC%=A:COMMAND.COM SET DRIVE=C:IF NOT EXIST%DRIVE%AUTOEXEC.BAT GOTO END123COPYVIRUS.BAT%DRIVE%NULECHOCALL VIRUSTMP.DATCOPY%DRIVE%AUTOEXEC.BAT+TMP.DAT%DRIVE%AUTOEXEC.BAT NULDELTMP.DATNULEcho BAT Virus Test!I will format your Disk!:END123ECHO ON,3,计算机病毒的结构,触发机制:这部分主要用来控制病毒的传播和发作。触发机制所设的条件不能太苛刻,也不可以太宽松。传播机制:这部分主要负责病毒的感染和传播。表现机制:这个模块也称为破坏模块。,4,第三章 计算机病毒的基本机制,计算机病毒状态计算机病毒的三种机制计算机病毒的传播机制计算机病毒的触发机制计算机病毒的破坏机制,5,计算机病毒状态,计算机病毒在传播中存在静态和动态两种状态。静态病毒,指存在于辅助存储介质(如软盘、硬盘、磁带、CD-ROM)上的计算机病毒。动态病毒,指进入了计算机内存的计算机病毒,它必定是随病毒宿主的运行,如使用寄生了病毒的软、硬盘启动机器,或执行染有病毒的程序文件时进入内存的。,6,计算机病毒状态,内存中的动态病毒又有两种状态:能激活态和激活态。能激活态:当内存中的病毒代码能够被系统的正常运行机制所执行时,动态病毒就处于能激活态。激活态:系统正在执行病毒代码时,动态病毒就处于激活态。,7,计算机病毒状态,一般认为病毒链接到中断向量或块设备驱动程序上,成功地驻留内存后,病毒就获得了系统控制权。实际上,处于“能激活态”的病毒并未获得系统控制权。内存中的病毒还有一种较为特殊的状态失活态。如果用户把中断向量表恢复成正确的值,修改中断向量表的动态病毒就失活了;如果用户把设备驱动程序头恢复成正确的值,修改设备驱动程序头的动态病毒就失活了。,8,计算机病毒的三种机制,病毒程序是一种特殊程序,其最大特点是具有感染能力。病毒的感染动作受到触发机制的控制,病毒触发机制还控制了病毒的破坏动作。病毒程序一般由感染模块、触发模块、破坏模块、主控模块组成,相应为传染机制、触发机制和破坏机制三种。有的病毒不具备所有的模块,如:巴基斯坦智囊病毒没有破坏模块。,9,感染模块,感染模块是病毒进行感染动作的部分,负责实现感染机制。感染模块的主要功能:寻找一个可执行文件。检查该文件中是否有感染标记。如果没有感染标记,进行感染,将病毒代码放入宿主程序。,10,感染模块,小球病毒的传染:读入目标磁盘的自举扇区(BOOT区)。判断是否满足传染条件。若满足(目标盘BOOT区的01FC偏移位置为5713H标志),则将病毒代码前512个字节写入BOOT引导程序,将其后512个字节写入该簇,并将该簇标记为坏簇,保护起来。跳转至原INT 13H 的入口执行正常的磁盘操作。,11,触发模块,触发模块根据预定条件满足与否,控制病毒的感染或破坏动作。依据触发条件的情况,可以控制病毒感染和破坏动作的频率,使病毒在隐蔽的状态下,进行感染和破坏动作。,12,触发模块,病毒的触发条件有多种形式,例如:日期、时间、发现特定程序、感染的次数、特定中断调用的次数等。病毒触发模块主要功能:检查预定触发条件是否满足。如果满足,返回真值。如果不满足,返回假值。,13,破坏模块,破坏模块负责实施病毒的破坏动作。其内部是实现病毒编写者预定破坏动作的代码。这些破坏动作可能是破坏文件、数据。破坏计算机的空间效率和时间效率或者使机器运行崩溃。有些病毒的该模块并没有明显的恶意破坏行为,仅在被传染的系统设备上表现出特定的现象,该模块有时又被称为表现模块。攻击目标分类攻击系统数据区;攻击文件;攻击内存;干扰系统运行;攻击CMOS和BIOS数据;干扰外部设备;破坏网络系统,14,主控模块,主控模块在总体上控制病毒程序的运行。其基本动作如下:调用感染模块,进行感染。调用触发模块,接受其返回值。如果返回真值,执行破坏模块。如果返回假值,执行后续程序。,15,病毒程序结构,Program Virus:=Subroutine infect_executable:=loop:file=Random_executable;if first_line of file=1234567 then go loop;append virus to file;Subroutine Do_damage:=/*whatever damage is desired*/Subroutine trigger_pulled:=Return true on desired condition main_program:=infect_executable;if trigger_pulled then Do_Damage;Goto next;next:,16,计算机病毒的传播机制,病毒感染目标和过程感染长度和感染次数引导型病毒的感染寄生感染插入感染和逆插入感染链式感染破坏性感染滋生感染没有入口点的感染OBJ、LIB和源码的感染混合感染和交叉感染零长度感染,17,病毒感染目标和过程,硬盘系统分配表扇区(主引导扇区)硬盘BOOT扇区软盘BOOT扇区覆盖文件(OVL)EXE文件COM文件COMMAND文件IBMBIOS文件/IBMD0S文件 另外,eml,doc,dot,bvs,bat,pl,html,flash,dll,sys,asp,18,病毒感染目标和过程,病毒入侵宿主程序的基本方式有两种:替代方式和链接方式。染毒程序运行时,必须能使病毒代码得到系统的控制权。染毒程序运行时,首先运行病毒代码。而病毒的宿主程序可分为两类:操作系统和应用程序。病毒代码替换磁盘的Boot扇区、主引导扇区。COMMAND程序做宿主程序 应用程序做宿主程序,19,病毒感染目标和过程,20,病毒感染目标和过程,21,感染长度和感染次数,保持原长度。增长长度为恒定值。增长长度的单位为一基数,在1节(16字节)内浮动。每次感染,宿主程序增长长度都在变化。,22,单次感染,单次感染病毒在每次感染宿主程序时,将病毒代码放入宿主程序的同时,还放置了感染标记。当病毒再次遇到已染毒程序时,当发现染毒程序中的感染标记时,便不会再进行感染。,23,重复感染,重复感染是指病毒遇到宿主文件时,不论宿主文件是否已感染过,都再次进行感染。重复感染的结果是病毒文件长度不断膨胀。病毒的重复感染可分如下几种。简单的重复感染。有限次数重复感染。每次重复感染时,长度变化。每次重复感染时,病毒代码的位置变化(变位重复感染)。,24,变位重复感染,25,引导型病毒的感染,26,引导型病毒的感染,隐藏方法把FAT表中的簇标记为bad改变BPB中的逻辑驱动器的容量非常规格式化磁盘,27,寄生感染,病毒将其代码放入宿主程序中,不论放入宿主程序的头部、尾部还是中间部位,都称之为寄生感染。病毒放入宿主程序中部的感染方式称为插入感染,另外有插入感染和逆插入感染。有两种方法把病毒放入文件的头部。第一种方法把目标文件的头部移到文件的尾部,然后拷贝病毒体到目标文件的头部的空间。第二种方法是病毒在RAM中创建其拷贝,然后追加目标文件,最后把连接结果存到磁盘。,28,寄生感染,29,寄生感染,30,寄生感染,31,插入感染和逆插入感染,一般病毒感染宿主程序时,病毒代码放在宿主程序头部或尾部。而插入感染病毒能够自动地将宿主程序拦腰截断,在宿主程序的中部插入病毒代码。必须保证:病毒首先获得运行权。病毒不能卡死。宿主不能因病毒代码的插入而卡死。,32,插入感染和逆插入感染,33,插入感染和逆插入感染,34,链式感染,35,破坏性感染,36,滋生感染,37,中断向量表,没有入口点的感染,这些病毒在宿主文件中没有执行入口,病毒没有记录COM文件的JMP指令,也不修改EXE文件头中的入口地址。该病毒在宿主文件的中部记录跳转到病毒本身的指令,当运行宿主文件后,病毒没有立即得到控制权,而是当宿主例程调用包含病毒跳转指令时才获得系统的控制权。,38,没有入口点的感染,39,没有入口点的感染,40,OBJ、LIB和源码的感染,病毒感染编译库文件、目标文件和源码,这种方式少且没有广泛流传。这些该感染的OBJ、LIB合并代码到一个对象模块或对象库。因此,感染文件不是可执行文件,不会马上传播。其COM和EXE文件通过对已感染的OBJ/LIB连接而成,则该文件已感染。因此,该病毒传播有两个阶段:OBJ/LIB先感染;然后合成不同的病毒体。,41,混合感染和交叉感染,混合感染既感染文件又感染主引导区或Boot扇区的混合感染病毒。如Flip。交叉感染在一个宿主程序上感染多种病毒。,42,交叉感染实例,43,零长度感染,病毒感染宿主文件时,将其病毒代码放入宿主程序,一般会使宿主程序长度增加,因而很容易被用户发现。而有些病毒在感染时,将病毒代码放入宿主程序,同时保持宿主程序长度不变,称为零长度感染。此类病毒在感染时,采取了特殊技巧。首先在宿主程序中寻找“空洞”,将病毒代码放入“空洞”之中,而后改变宿主程序开始处代码,使藏在“空洞”中的病毒代码首先运行,在病毒运行结束时,恢复宿主程序开始处代码,而后运行宿主程序。,44,零长度感染,什么是“空洞”(cavity)呢?就是具有足够长度的全部为零的程序数据区或堆栈区。,45,零长度感染采用压缩技术,46,零长度感染,47,计算机病毒的又一分类,绝迹病毒濒危病毒罕见病毒常见病毒,48,计算机病毒的触发机制,日期和时间触发:特定日期触发、月份触发、前半年/后半年触发。键盘触发:击键次数触发、组合键触发和热启动触发。感染触发:感染文件个数触发、感染序数触发、感染磁盘个数触发和感染失败触发。启动触发:对计算机启动次数进行计数,并将此值作为触发条件。磁盘访问次数触发和中断访问次数触发。,49,计算机病毒的触发机制,其它触发:OS型号、IP地址、语言、地区、特定漏洞。,50,计算机病毒的破坏机制,攻击系统数据区:硬盘主引导扇区、Boot扇区、FAT表和文件目录。攻击文件和硬盘:删除、改名、替换内容、丢失部分程序代码、内容颠倒、写入时间变空白、变碎片、假冒文件、丢失文件簇、攻击数据文件。攻击内存:占用大量内存、改变内存总量、禁止分配内存、蚕食内存。,51,计算机病毒的破坏机制,干扰系统的运行:不执行命令、干扰内部命令的执行、虚假报警、打不开文件、内部栈溢出、占用特殊数据区、换现行盘、时钟倒转、重启动、死机、强制游戏、扰乱串并行口。扰乱输出设备:字符跌落、环绕、倒置、显示前一屏幕、光标下跌、滚屏幕、抖动、乱写、吃字符,演奏曲子、警笛声、炸弹噪声、鸣叫、咔咔声和嘀嗒声,假报警、间断性打印和更换字符。扰乱键盘:响铃、封锁键盘、换字、抹掉缓存区字符、重复和输入紊乱。,52,与病毒现象类似的硬件故障,系统的硬件配置:软件不能正常运行。电源电压不稳定:磁盘文件丢失或破坏。插件接触不良:设备时好时坏。软驱故障:读坏磁盘。关于CMOS的问题:CMOS的高级设置中有一些影子内存开关,这也会影响系统的运行速度。,53,与病毒现象类似的软件故障,出现“Invalid drive specification”(非法驱动器号):说明用户的驱动器丢失。软件程序已被破坏(非病毒):由于磁盘质量等问题,文件的数据部分丢失,而程序能运行且出现不正常现象。DOS系统配置不当:DOS操作系统在启动时会去查找其系统配置文件CONFIG.SYS,并按其要求配置运行环境。如果系统环境设置不当会造成某些软件不能正常运行,如C/C+语言系统、AUTOCAD等等。软件与DOS版本的兼容性:DOS操作系统自身的特点是具有向下的兼容性。许多软件都要过多地受其环境的限制。,54,与病毒现象类似的软件故障,引导过程故障:系统引导时屏幕显示“Missing operating system”(操作系统丢失),故障原因是硬盘的主引导程序可完成引导,但无法找到DOS系统的引导记录。造成这种现象的原因是C盘无引导记录及DOS系统文件,或CMOS中硬盘的类型与硬盘本身的格式化时的类型不同。用不同的编辑软件程序:用户用一些编辑软件编辑源程序,编辑系统会在文件的特殊地方做上一些标记。这样当源程序编译或解释执行时就会出错。例如,用WPS的N命令编辑的文本文件,在其头部也有版面参数,有的程序编译或解释系统却不能将之与源程序分辨开,这样就出现了错误。,55,与病毒现象类似的软件故障,某些软件无法正常运行:如word由于内存不足无法存盘。网络联接数过多导致新的应用无法上网:句柄数有限。防火墙配置不当导致无法上网。,