第4章计算机病毒寄生环境分析

上传人:鲁** 文档编号:584924655 上传时间:2024-09-01 格式:PPT 页数:64 大小:891.03KB
返回 下载 相关 举报
第4章计算机病毒寄生环境分析_第1页
第1页 / 共64页
第4章计算机病毒寄生环境分析_第2页
第2页 / 共64页
第4章计算机病毒寄生环境分析_第3页
第3页 / 共64页
第4章计算机病毒寄生环境分析_第4页
第4页 / 共64页
第4章计算机病毒寄生环境分析_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《第4章计算机病毒寄生环境分析》由会员分享,可在线阅读,更多相关《第4章计算机病毒寄生环境分析(64页珍藏版)》请在金锄头文库上搜索。

1、第第4章章 计算机病毒寄生环境分析计算机病毒寄生环境分析4.1 磁盘引导区结构磁盘引导区结构4.2 com文件结构文件结构4.3 exe文件结构文件结构4.4 PE文件结构文件结构4.5 VxD文件结构文件结构4.6 其他可感染病毒存储介质结构其他可感染病毒存储介质结构4.7 系统的启动与加载系统的启动与加载4.8 BIOS与与DOS的中断的中断4.9 计算机病毒与系统安全漏洞计算机病毒与系统安全漏洞习题习题主引导扇区,或称为主引导记录(主引导扇区,或称为主引导记录(MBR)是物理硬)是物理硬盘的第一个扇区,其位置在硬盘的盘的第一个扇区,其位置在硬盘的0柱面柱面0磁头磁头1扇区。扇区。MBR中

2、包含了主引导程序和硬盘分区表。当中包含了主引导程序和硬盘分区表。当MBR中中感染病毒后,病毒程序将替代主引导程序,原来的主感染病毒后,病毒程序将替代主引导程序,原来的主引导程序通常被转移到其他地方。引导程序通常被转移到其他地方。4.1 磁盘引导区结构磁盘引导区结构 4.1.1 主引导扇区主引导扇区基于基于DOS的主引导扇区包含经典的主引导程序,具有的主引导扇区包含经典的主引导程序,具有最好的兼容性,可在各种最好的兼容性,可在各种DOS和和Windows版本正常工版本正常工作。如果主引导扇区感染了病毒,可以使用基于作。如果主引导扇区感染了病毒,可以使用基于DOS的主引导程序覆盖之,可消除病毒。的

3、主引导程序覆盖之,可消除病毒。可以使用可以使用DEBUG编写一段小程序来读出主引导扇区,编写一段小程序来读出主引导扇区,程序如下:程序如下:-U 100138A:0100 B80102 MOVAX,0201;读读1个扇区个扇区138A:0103 BB007C MOVBX,7C00;读到当前段的读到当前段的7C00处处138A:0106 B90100 MOVCX,0001;0柱面柱面1扇区扇区138A:0109 BA8000 MOVDX,0080;第一个物理硬盘第一个物理硬盘0磁头磁头138A:010C CD13INT 13;读盘中断调用读盘中断调用138A:010E CCINT 3-某物理硬盘

4、的主引导扇区的内容如图某物理硬盘的主引导扇区的内容如图4.1所示。所示。图图4.1 经典主引导扇区数据经典主引导扇区数据从图从图4.1中可以看出,主引导程序范围在中可以看出,主引导程序范围在7C007C8A,接着是数据区。中间有很大一部分数据是,接着是数据区。中间有很大一部分数据是00。7DBE至至7DFD之间为之间为4个分区表,每个分区表占用个分区表,每个分区表占用16B。图。图4.1中只有一个分区表有数据,其余中只有一个分区表有数据,其余3个全为个全为00。主引导扇区最后两个字节。主引导扇区最后两个字节55AA是已分区的标志。是已分区的标志。分区表的分区表的16B数据结构如表数据结构如表4

5、.1(见书(见书95页)所示。页)所示。可以从图可以从图4.1中的程序区(中的程序区(008A)反汇编出主引导程)反汇编出主引导程序如下:序如下:-U7C00 7C8A138A:7C00FACLI;关中断关中断138A:7C0133C0 XOR AX,AX138A:7C038ED0 MOV SS,AX138A:7C05BC007C MOV SP,7C00 ;设置堆栈到设置堆栈到0:7C00138A:7C088BF4 MOV SI,SP138A:7C0A 50PUSH AX138A:7C0B 07POPES;设置设置ES、DS段为段为0138A:7C0C 50PUSH AX138A:7C0D1F

6、POPDS138A:7C0EFBSTI;开中断开中断138A:7C0FFCCLD138A:7C10BF0006MOV DI,0600138A:7C13B90001MOV CX,0100138A:7C16F2REPNZ;把主引导扇区从内存把主引导扇区从内存0:7C00转移到转移到0:0600138A:7C17A5MOVSW138A:7C18EA1D060000 JMP0000:061D;跳转到跳转到0:061D继续执行(转移后的下一条指令执行)继续执行(转移后的下一条指令执行)138A:7C1DBEBE07MOV SI,07BE;指向第一个硬盘分区表指向第一个硬盘分区表138A:7C20B304

7、MOV BL,04 ;设置分区表总个数为设置分区表总个数为4138A:7C22803C80 CMP BYTE PTR SI,80;测试分区是否活动测试分区是否活动138A:7C25740EJZ 7C35;是活动分区转移是活动分区转移138A:7C27803C00 CMP BYTE PTR SI,00138A:7C2A751C JNZ 7C48;分区表标志非法转移分区表标志非法转移138A:7C2C83C610 ADDSI,+10 ;指向下一个分区表指向下一个分区表138A:7C2FFECB DEC BL138A:7C3175EF JNZ 7C22;没有检查完,从头继续检查下一个分区没有检查完,

8、从头继续检查下一个分区表表138A:7C33CD18 INT 18;没有找到活动分区,则寻找其他引导设没有找到活动分区,则寻找其他引导设备备138A:7C358B14MOV DX, SI;将活动分区首扇区地址放入将活动分区首扇区地址放入DX和和CX中中138A:7C378B4C02MOV CX, SI+02138A:7C3A8BEE MOV BP,SI138A:7C3C83C610 ADD SI,+10;指向活动分区表之后的分区表指向活动分区表之后的分区表138A:7C3FFECB DEC BL138A:7C41741A JZ7C5D ;4个分区表检查完转移个分区表检查完转移138A:7C43

9、803C00 CMP BYTE PTR SI,00;检查后续分区表标志字节是否合检查后续分区表标志字节是否合法法138A:7C4674F4JZ 7C3C;分区表标志合法,则继续分区表标志合法,则继续138A:7C48BE8B06 MOV SI,068B;非法分区表则给出提示非法分区表则给出提示“Invalid partition table.”138A:7C4BACLODSB138A:7C4C3C00 CMP AL,00138A:7C4E740BJZ7C5B ;显示完后跳入死循环显示完后跳入死循环138A:7C5056PUSH SI138A:7C51BB0700MOV BX,0007138A:

10、7C54B40E MOV AH,0E138A:7C56CD10 INT 10;显示显示AL中的字符中的字符138A:7C585EPOP SI138A:7C59EBF0 JMP7C4B ;继续处理下一个字符继续处理下一个字符138A:7C5BEBFE JMP7C5B ;死循环死循环138A:7C5DBF0500 MOV DI,0005;设置读入活动分区引导扇区的次数为设置读入活动分区引导扇区的次数为5138A:7C60BB007C MOV BX,7C00138A:7C63B80102 MOV AX,0201138A:7C6657PUSH DI138A:7C67CD13 INT 13;把活动分区的

11、引导扇区读入内存把活动分区的引导扇区读入内存0:7C00138A:7C695FPOP DI138A:7C6A730C JNB 7C78;读引导成功转移读引导成功转移138A:7C6C33C0 XOR AX,AX;读引导失败读引导失败138A:7C6ECD13 INT 13;复位驱动器复位驱动器138A:7C704FDEC DI138A:7C7175ED JNZ 7C60;再次读活动分区的引导扇区再次读活动分区的引导扇区;读引导扇区失败,给出提示读引导扇区失败,给出提示“Error loading operating system”后跳入死循环。后跳入死循环。138A:7C73BEA306 MO

12、V SI,06A3138A:7C76EBD3 JMP7C4B;读引导扇区成功,再检查主引导扇区的末尾标志是否为读引导扇区成功,再检查主引导扇区的末尾标志是否为55AA。不是则给出提示不是则给出提示“Missing operating system”后跳入死循环;后跳入死循环;是是55AA则跳转到则跳转到0:7C00执行刚刚读入的活动分区引导程序。执行刚刚读入的活动分区引导程序。138A:7C78BEC206MOV SI,06C2138A:7C7BBFFE7DMOV DI,7DFE138A:7C7E813D55AACMP WORD PTR DI,AA55138A:7C8275C7 JNZ7C4B

13、138A:7C848BF5 MOV SI,BP138A:7C86EA007C0000 JMP 0000:7C00主引导程序由主引导程序由BIOS引导装入到内存引导装入到内存0:7c000,并从此,并从此执行。主引导程序检查硬盘分区表,寻找活动分区。执行。主引导程序检查硬盘分区表,寻找活动分区。如果没有找到活动分区,则在屏幕上给出提示后跳入如果没有找到活动分区,则在屏幕上给出提示后跳入死循环;找到活动分区,则读入活动分区的逻辑引导死循环;找到活动分区,则读入活动分区的逻辑引导扇区,如果读入成功,则执行活动分区的引导程序,扇区,如果读入成功,则执行活动分区的引导程序,否则给出提示后跳入死循环。否则

14、给出提示后跳入死循环。硬盘活动分区的引导扇区或系统软盘的引导扇区(以硬盘活动分区的引导扇区或系统软盘的引导扇区(以下称为逻辑引导扇区),其结构基本相同,包含两方下称为逻辑引导扇区),其结构基本相同,包含两方面的内容:逻辑引导程序和磁盘基数表。面的内容:逻辑引导程序和磁盘基数表。逻辑引导程序是在逻辑格式化时建立的,其内容与所逻辑引导程序是在逻辑格式化时建立的,其内容与所使用的高级格式化软件(或操作系统)有关。如图使用的高级格式化软件(或操作系统)有关。如图4.2所示的是所示的是MS-DOS 3.30A软盘引导扇区的全部数据。软盘引导扇区的全部数据。4.1.2 逻辑引导扇区逻辑引导扇区图图4.2

15、MS-DOS 3.30A软盘引导扇区数据软盘引导扇区数据对于对于Windows 95/98/Me格式化的磁盘分区,通常使格式化的磁盘分区,通常使用用FAT32文件系统。文件系统。FAT32文件系统的逻辑引导扇区文件系统的逻辑引导扇区的结构与的结构与MS-DOS类似,如图类似,如图4.3所示的是所示的是FAT32逻辑逻辑硬盘的引导扇区数据。硬盘的引导扇区数据。磁盘系统引导扇区中,有整个逻辑盘的重要数据,即磁盘系统引导扇区中,有整个逻辑盘的重要数据,即系统参数块(系统参数块(BIOS Parameter Block,BPB)。)。BPB在磁盘逻辑格式化时写入逻辑磁盘的引导区中,位置在磁盘逻辑格式化

16、时写入逻辑磁盘的引导区中,位置从引导扇区的从引导扇区的0BH字节地址开始存放。字节地址开始存放。FAT32的的BPB对对FAT16的的BPB进行了扩充,可以通过进行了扩充,可以通过DEBUG来读来读取硬盘的取硬盘的BPB参数区内容。如图参数区内容。如图4.4所示的是从某计所示的是从某计算机的算机的D盘引导区读取的盘引导区读取的BPB参数。参数。图图4.3 FAT32逻辑硬盘的引导扇区数据逻辑硬盘的引导扇区数据图图4.4 磁盘参数表(磁盘参数表(BPB参数块)参数块)FAT32的的BPB参数块的具体结构如表参数块的具体结构如表4.2(见书(见书101页)页)所示(其中的实例数据在图所示(其中的实

17、例数据在图4.4中)。中)。引导型病毒是一种在引导型病毒是一种在ROM BIOS之后,系统引导时之后,系统引导时出现的病毒,它先于操作系统执行,依托的环境是出现的病毒,它先于操作系统执行,依托的环境是BIOS中断服务程序。引导型病毒是利用操作系统的中断服务程序。引导型病毒是利用操作系统的引导模块放在某个固定的位置,并且控制权的转交方引导模块放在某个固定的位置,并且控制权的转交方式是以物理地址为依据,而不是以操作系统引导区的式是以物理地址为依据,而不是以操作系统引导区的内容为依据,因而病毒占据该物理位置即可获得控制内容为依据,因而病毒占据该物理位置即可获得控制权。主引导扇区和逻辑引导扇区就是引导

18、型病毒寄生权。主引导扇区和逻辑引导扇区就是引导型病毒寄生的场所。病毒寄生在引导扇区后,将真正的引导区程的场所。病毒寄生在引导扇区后,将真正的引导区程序转移或替换,待病毒程序执行后,再将控制权交给序转移或替换,待病毒程序执行后,再将控制权交给原来真正的引导区程序,使得这个带病毒的系统看似原来真正的引导区程序,使得这个带病毒的系统看似正常运转,而病毒已隐藏在系统中,并伺机传染、发正常运转,而病毒已隐藏在系统中,并伺机传染、发作。作。4.1.3 引导型病毒引导型病毒在可执行文件中,在可执行文件中,com文件的结构是最简单的。文件的结构是最简单的。com文件只使用一个段,文件中的程序和数据的大小限制文

19、件只使用一个段,文件中的程序和数据的大小限制在在64KB内。内。执行一个执行一个com文件时,文件时,DOS把把com文件装入到系统分文件装入到系统分配的一个内存块中。在内存块的最前面为该程序建立配的一个内存块中。在内存块的最前面为该程序建立一个程序段前缀一个程序段前缀PSP,PSP的大小为的大小为100H字节,字节,com文件的内容直接读入到文件的内容直接读入到PSP之后的内存中,在运行之后的内存中,在运行com文件程序前,文件程序前,4个段寄存器个段寄存器CS、DS、ES、SS都都初始化为初始化为PSP的段地址,堆栈指针的段地址,堆栈指针SP被设置为被设置为FFFEH,指令指针,指令指针I

20、P设置为设置为100H。然后开始执行这。然后开始执行这个个com程序。程序。4.2 com文件结构文件结构每一个程序都有一个环境段,其中包括环境变量的设每一个程序都有一个环境段,其中包括环境变量的设置值。环境变量可以用置值。环境变量可以用SET命令显示和设置。环境块命令显示和设置。环境块中环境变量的格式为:中环境变量的格式为:NAME=string。每一项后面。每一项后面都以都以“00H”字节结束。整个列表后面再跟一个字节字节结束。整个列表后面再跟一个字节“00H”,表示环境变量列表的结束。正在执行的程,表示环境变量列表的结束。正在执行的程序的文件名也放在环境段中。环境段的值放在序的文件名也放

21、在环境段中。环境段的值放在PSP: 02CH中,如图中,如图4.5所示。所示。图图4.5 COM文件的内存映像和环境段文件的内存映像和环境段一个一个DOS下的下的exe文件可以包含多个段,每个段的长文件可以包含多个段,每个段的长度在度在64KB内。内。exe文件中的程序、数据总的大小可以文件中的程序、数据总的大小可以超过超过64KB。EXE文件分为两个部分,文件分为两个部分,exe文件头和装入模块。文文件头和装入模块。文件头描述整个件头描述整个exe文件的一些信息,在装入过程中由文件的一些信息,在装入过程中由DOS使用。使用。exe文件的格式如图文件的格式如图4.6所示。所示。在执行一个在执行

22、一个exe文件时,操作系统根据文件头的信息,文件时,操作系统根据文件头的信息,为其分配内存块、生成环境段、建立为其分配内存块、生成环境段、建立PSP,其过程和,其过程和执行执行com文件时基本相同。文件时基本相同。4.3 exe文件结构文件结构图图4.6 exe文件结构文件结构exe文件中装入模块的内容直接读入到文件中装入模块的内容直接读入到PSP之后的内之后的内存。程序段前缀存。程序段前缀PSP所在的段称为起始段值,其值由所在的段称为起始段值,其值由操作系统根据动态内存使用情况决定。操作系统根据动态内存使用情况决定。DS、ES初始初始化为化为PSP的段地址,的段地址,CS、IP和和SS、SP

23、根据文件头中根据文件头中相应字段的内容进行赋值,段寄存器相应字段的内容进行赋值,段寄存器CS和和SS等于文等于文件头中相应字段的值,再加上件头中相应字段的值,再加上PSP的段值(即起始段的段值(即起始段值)。值)。对对exe文件的装入模块中,如果其中的指令或数据使文件的装入模块中,如果其中的指令或数据使用了段地址,装入程序还需要进行重定位。通过重定用了段地址,装入程序还需要进行重定位。通过重定位表,取出每一个重定位项进行处理。重定位项实际位表,取出每一个重定位项进行处理。重定位项实际上是一个上是一个4字节指针,包括段和偏移两个部分,将段字节指针,包括段和偏移两个部分,将段加上起始段值得到一个段

24、值,再结合偏移,就可以定加上起始段值得到一个段值,再结合偏移,就可以定位到装入模块的一个字,将这个字的内容加上起始段位到装入模块的一个字,将这个字的内容加上起始段值,然后开始执行这个值,然后开始执行这个exe程序,如图程序,如图4.7所示。所示。图图4.7 exe内存映像内存映像在文件型病毒中,在文件型病毒中,exe文件曾经是计算机病毒的主要文件曾经是计算机病毒的主要寄生场所。大多数寄生场所。大多数exe文件病毒寄生在该文件的末尾,文件病毒寄生在该文件的末尾,同时修改了文件头的数据,把原来的文件头数据保存同时修改了文件头的数据,把原来的文件头数据保存到病毒代码之中,使得在运行该文件时,病毒代码

25、首到病毒代码之中,使得在运行该文件时,病毒代码首先运行,然后再执行先运行,然后再执行exe文件原来的程序。文件原来的程序。PE的意思就是可移植的执行体(的意思就是可移植的执行体(portable executable),它是),它是 Win 32环境自身所带的执行体文环境自身所带的执行体文件格式。它的一些特性继承自件格式。它的一些特性继承自UNIX的的 COFF (Common Object File Format)文件格式。文件格式。“portable executable”意味着该文件格式是跨意味着该文件格式是跨Win 32平台的:即使平台的:即使Windows运行在非运行在非Intel的

26、的CPU上,任上,任何何Win 32平台的平台的PE装载器都能识别和使用该文件格装载器都能识别和使用该文件格式。当然,移植到不同的式。当然,移植到不同的CPU上上PE执行体必然得有执行体必然得有一些改变。所有一些改变。所有Win 32执行体执行体 (除了除了VxD和和16位的位的DLL)都使用都使用PE文件格式,包括文件格式,包括NT的内核模式驱动程的内核模式驱动程序(序(Kernel Mode Drivers)。)。4.4 PE文件结构文件结构Microsoft设计的可移植执行文件格式设计的可移植执行文件格式Portable Executable File Format (PE格式格式),可

27、应用于所有基,可应用于所有基于于Win 32的系统的系统:Windows NT、Win 32s及及Windows 95/98/Me。这种文件格式主要由公共对象文件格式这种文件格式主要由公共对象文件格式COFF (Common Object File Format)发展而来,发展而来,COFF文件文件格式普遍运用于格式普遍运用于UNIX操作系统。然而,为了和旧版操作系统。然而,为了和旧版本本MS-DOS及及Windows操作系统兼容,这种操作系统兼容,这种PE文件文件格式同样保留了在格式同样保留了在MS-DOS中老的、类似于中老的、类似于MZ的文的文件头。它同件头。它同Win 31系统下的系统下

28、的NE格式相比有了很大的格式相比有了很大的改进,其文件在磁盘中的格式同内存中的格式区别很改进,其文件在磁盘中的格式同内存中的格式区别很小,装载程序实现起来很简单,通过文件内存映像机小,装载程序实现起来很简单,通过文件内存映像机制将磁盘文件映射到虚拟地址空间,并进行重定位及制将磁盘文件映射到虚拟地址空间,并进行重定位及设定引入地址表即可。设定引入地址表即可。在头文件在头文件WINNT.h中,包含了许多用于中,包含了许多用于PE文件格式文件格式的结构定义,该头文件是的结构定义,该头文件是Windows NT的的Win32软件软件开发包开发包(SDK)中的一部分。在里面,可以找到每一个中的一部分。在

29、里面,可以找到每一个用来表示文件不同组成部分的文件头和数据目录用来表示文件不同组成部分的文件头和数据目录(directory)的数据结构定义,然而在该文件的其他部的数据结构定义,然而在该文件的其他部分,分,WINNT.H却缺少对文件格式的足够定义。却缺少对文件格式的足够定义。Windows NT的的PE文件格式给那些熟悉文件格式给那些熟悉Windows和和MS-DOS环境的开发者引入了一个全新的结构,环境的开发者引入了一个全新的结构, PE文件格式和文件格式和UNIX中的中的COFF规范非常相似,规范非常相似,PE文件文件格式的结构方式是线性数据流,格式的开始是格式的结构方式是线性数据流,格式

30、的开始是MS-DOS头、实模式段截头、实模式段截(stub)的程序和的程序和PE文件的标识签文件的标识签名名(signature),接着是,接着是PE文件头和文件头和PE可选可选(optional)段头,以及其他各个段的段段头,以及其他各个段的段(section)头和各个段的实头和各个段的实体,文件的最后是其他方面的一些信息,包括重定位体,文件的最后是其他方面的一些信息,包括重定位信息,符号表信息和字符表等信息,如图信息,符号表信息和字符表等信息,如图4.8所示。所示。图图4.8 PE文件结构的总体层次分布文件结构的总体层次分布MS-DOS文件头MS-DOS实模式程序PE文件签名PE文件头PE

31、文件头可选项.text分段段头.bss分段段头.rdata分段段头.debug分段段.text段.bss段.rdata段.debug段可选段头由一个数组结尾,该数组存放了与数据目录可选段头由一个数组结尾,该数组存放了与数据目录(directory)虚拟地址相关的数据目录项,数据目录中虚拟地址相关的数据目录项,数据目录中给出了段体的有关信息。每一个数据目录指明了特定给出了段体的有关信息。每一个数据目录指明了特定段体数据是如何组织的。段体数据是如何组织的。PE文件格式有文件格式有11个预定义个预定义的段,这在的段,这在Windows NT的应用程序中是很常见的。的应用程序中是很常见的。但是,每一个

32、应用程序都可以为它自己的代码和数据但是,每一个应用程序都可以为它自己的代码和数据定义特殊的段。定义特殊的段。VxD技术只使用于技术只使用于Windows 9x系列,系列,Windows NT不不支持此技术,而是采用更为先进的面向对象的驱动程支持此技术,而是采用更为先进的面向对象的驱动程序模型。序模型。VxD(Virtual Device Driver)是运行在是运行在Windows 9x保护环保护环ring0中保护模式下的中保护模式下的32位可执行位可执行模块,负责管理硬件设备或者已安装软件等系统资源。模块,负责管理硬件设备或者已安装软件等系统资源。所有所有VxD的运行都处于的运行都处于Win

33、dows 9x保护环保护环ring3,应,应用程序对硬件的访问实际上是由这些用程序对硬件的访问实际上是由这些VxD来代理完成来代理完成的。的。VxD向向ring3应用程序提供的函数接口称为应用程序提供的函数接口称为VxD服务。服务。4.5 VxD文件结构文件结构VxD可以用来虚拟实现一个物理硬件,比如中断虚拟可以用来虚拟实现一个物理硬件,比如中断虚拟化,以截取应用程序对硬件的请求,或者仲裁不同的化,以截取应用程序对硬件的请求,或者仲裁不同的应用程序对硬件的请求。因此,在多任务环境中,不应用程序对硬件的请求。因此,在多任务环境中,不同的应用程序可以共享相同的硬件设备。更多的情况同的应用程序可以共

34、享相同的硬件设备。更多的情况下,下,VxD能够通过模仿一个硬件设备的动作来提供一能够通过模仿一个硬件设备的动作来提供一个其实并不存在的个其实并不存在的“虚拟虚拟”设备。由于设备。由于VxD拥有系统拥有系统ring0级的特权,所以它能用来实现对应用软件的监级的特权,所以它能用来实现对应用软件的监控、调试甚至改变应用软件的行为。所以控、调试甚至改变应用软件的行为。所以VxD的本质的本质是运行在系统核心级是运行在系统核心级ring0的可执行的的可执行的32位二进制程位二进制程序代码,也称序代码,也称32位动态库,它和虚拟管理器位动态库,它和虚拟管理器VMM共共同构成同构成Windows的核心。的核心

35、。VxD是由是由_IGROUP、_LGROUP和和_PGROUP 3个不个不同作用的段组组成。从同作用的段组组成。从VxD在磁盘上的存储格式来看,在磁盘上的存储格式来看,VxD是以线性可执行是以线性可执行(Linear excutable,LE)文件格文件格式存储的。这是式存储的。这是Microsoft内部使用的一种文件格式。内部使用的一种文件格式。LE文件格式与文件格式与Windows 9x的的NE(nonLinear Excutable)文件有点相似,也有一个文件有点相似,也有一个LE文件头,整个文件头,整个LE文件的文件头存放方式如图文件的文件头存放方式如图4.9所示。所示。图图4.9

36、VxD文件结构文件结构计算机病毒发展到现在,原来的引导型病毒、文件型计算机病毒发展到现在,原来的引导型病毒、文件型病毒和混合型病毒,都是通过磁盘和光盘进行传播的,病毒和混合型病毒,都是通过磁盘和光盘进行传播的,其传播速度相对较慢。其传播速度相对较慢。依靠网络环境传播的病毒,可以称为网络病毒。网络依靠网络环境传播的病毒,可以称为网络病毒。网络病毒传播速度极快,破坏性更加严重。电子邮件、病毒传播速度极快,破坏性更加严重。电子邮件、Web浏览器、浏览器、FTP服务器等因特网或内联网网络应用服务器等因特网或内联网网络应用系统,是计算机病毒的新型寄生和传播载体。系统,是计算机病毒的新型寄生和传播载体。4

37、.6 其他可感染病毒存储介质结构其他可感染病毒存储介质结构一打开计算机就要执行程序。第一个是大家非常熟悉一打开计算机就要执行程序。第一个是大家非常熟悉的的BIOS(基本输入输出系统),(基本输入输出系统),BIOS是直接与硬件是直接与硬件打交道的底层代码,它为操作系统提供了控制硬件设打交道的底层代码,它为操作系统提供了控制硬件设备的基本功能。备的基本功能。BIOS包括有系统包括有系统BIOS(即常说的主(即常说的主板板BIOS)、显卡)、显卡BIOS和其他设备(例如,和其他设备(例如,IDE控制控制器、器、SCSI卡或网卡等)的卡或网卡等)的BIOS。计算机的启动过程。计算机的启动过程是在系统

38、是在系统BIOS的控制下进行的。的控制下进行的。BIOS一般被存放在一般被存放在ROM(只读存储芯片只读存储芯片)之中,即使在关机或掉电以后,之中,即使在关机或掉电以后,这些代码也不会消失。这些代码也不会消失。4.7 系统的启动与加载系统的启动与加载因为最初的因为最初的8086处理器能够访问的内存最大只有处理器能够访问的内存最大只有1MB,这,这1MB的低端的低端640KB被称为基本内存,而被称为基本内存,而A0000HBFFFFH要保留给显示卡的,要保留给显示卡的,C0000HFFFFFH则被保留给则被保留给BIOS使用,其中系统使用,其中系统BIOS一般一般占用了最后的占用了最后的64KB

39、或更多一点的空间,显卡或更多一点的空间,显卡BIOS一一般在般在C0000HC7FFFH处,处,IDE控制器的控制器的BIOS在在C8000HCBFFFH处。处。下面介绍计算机的启动过程。下面介绍计算机的启动过程。 当按下电源开关时,电源就开始向主板和其他设当按下电源开关时,电源就开始向主板和其他设备供电,此时电压还不太稳定,备供电,此时电压还不太稳定,CPU在此刻不会马上在此刻不会马上执行指令。当电源已经稳定供电了,电源部件会产生执行指令。当电源已经稳定供电了,电源部件会产生一个一个PG信号(信号(Power Good),该信号通过芯片组,),该信号通过芯片组,通知通知CPU开始执行程序。开

40、始执行程序。CPU马上就从地址马上就从地址FFFF0H处开始执行指令(由于处开始执行指令(由于CPU在初始状态时,在初始状态时,CS=0FFFFH、IP=0000),这个地址十分接近),这个地址十分接近1MB内存的末尾,一般在这里放的是一条跳转指令,跳到内存的末尾,一般在这里放的是一条跳转指令,跳到系统系统BIOS中真正的启动代码处。中真正的启动代码处。 系统系统BIOS的启动代码首先要做的事情就是进行加的启动代码首先要做的事情就是进行加电后自检(电后自检(Power on self Test,POST),),POST的主的主要任务是检测系统中一些关键设备是否存在和能否正要任务是检测系统中一些

41、关键设备是否存在和能否正常工作,例如中断控制器、常工作,例如中断控制器、DMA控制器、系统时钟控制器、系统时钟以及内存和显卡等设备。由于以及内存和显卡等设备。由于POST是最早进行的检是最早进行的检测过程,此时显卡还没有初始化,如果系统测过程,此时显卡还没有初始化,如果系统BIOS在在进行进行POST的过程中发现了一些致命错误,例如没有的过程中发现了一些致命错误,例如没有找到内存或者内存有问题(此时只会检查找到内存或者内存有问题(此时只会检查640KB常规常规内存),那么系统内存),那么系统BIOS就会直接控制喇叭发声来报就会直接控制喇叭发声来报告错误,声音的长短和次数代表了错误的类型。在正告

42、错误,声音的长短和次数代表了错误的类型。在正常情况下,常情况下,POST过程进行得非常快,几乎无法感觉过程进行得非常快,几乎无法感觉到它的存在,到它的存在,POST结束之后就会调用其他代码来进结束之后就会调用其他代码来进行更完整的硬件检测。行更完整的硬件检测。 接下来系统接下来系统BIOS将查找显卡的将查找显卡的BIOS。前面说过,。前面说过,显卡显卡BIOS的的ROM芯片的起始地址通常设在芯片的起始地址通常设在C0000H处,系统处,系统BIOS在这个地方找到显卡在这个地方找到显卡BIOS之后就调用之后就调用它的初始化代码,由显卡它的初始化代码,由显卡BIOS来初始化显卡,此时来初始化显卡,

43、此时多数显卡都会在屏幕上显示出一些初始化信息,介绍多数显卡都会在屏幕上显示出一些初始化信息,介绍生产厂商、图形芯片类型等内容,不过这个画面几乎生产厂商、图形芯片类型等内容,不过这个画面几乎是一闪而过。系统是一闪而过。系统BIOS接着会查找其他设备的接着会查找其他设备的BIOS程序,找到之后同样要调用这些程序,找到之后同样要调用这些BIOS内部的初始化内部的初始化代码来初始化相关的设备。代码来初始化相关的设备。 查找完所有其他设备的查找完所有其他设备的BIOS之后,系统之后,系统BIOS将显将显示出它自己的启动画面,其中包括有系统示出它自己的启动画面,其中包括有系统BIOS的类的类型、序列号和版

44、本号等内容。型、序列号和版本号等内容。 接着系统接着系统BIOS将检测和显示将检测和显示CPU的类型和工作频的类型和工作频率,然后开始测试所有的率,然后开始测试所有的RAM,并同时在屏幕上显,并同时在屏幕上显示内存测试的进度,可以在示内存测试的进度,可以在CMOS设置中自行决定使设置中自行决定使用简单耗时少或者详细耗时多的测试方式。用简单耗时少或者详细耗时多的测试方式。 内存测试通过之后,系统内存测试通过之后,系统BIOS将开始检测系统中将开始检测系统中安装的一些标准硬件设备,包括硬盘、安装的一些标准硬件设备,包括硬盘、CDROM、串口、并口、软驱等设备,另外绝大多数较新版本的串口、并口、软驱

45、等设备,另外绝大多数较新版本的系统系统BIOS在这一过程中还要自动检测和设置内存的在这一过程中还要自动检测和设置内存的定时参数、硬盘参数和访问模式等。定时参数、硬盘参数和访问模式等。 标准设备检测完毕后,系统标准设备检测完毕后,系统BIOS内部的支持即插内部的支持即插即用的代码将开始检测和配置系统中安装的即插即用即用的代码将开始检测和配置系统中安装的即插即用设备,每找到一个设备之后,系统设备,每找到一个设备之后,系统BIOS都会在屏幕都会在屏幕上显示出设备的名称和型号等信息,同时为该设备分上显示出设备的名称和型号等信息,同时为该设备分配中断、配中断、DMA通道和通道和I/O端口等资源。端口等资

46、源。 到这一步为止,所有硬件都已经检测配置完毕了,到这一步为止,所有硬件都已经检测配置完毕了,多数系统多数系统BIOS会重新清屏并在屏幕上方显示出一个会重新清屏并在屏幕上方显示出一个表格,其中概略地列出了系统中安装的各种标准硬件表格,其中概略地列出了系统中安装的各种标准硬件设备,以及它们使用的资源和一些相关工作参数。设备,以及它们使用的资源和一些相关工作参数。 接下来系统接下来系统BIOS将更新扩展系统配置数据将更新扩展系统配置数据(Extended System Configuration Data,ESCD)。)。ESCD是系统是系统BIOS用来与操作系统交换硬件配置信息用来与操作系统交换

47、硬件配置信息的一种手段,这些数据被存放在的一种手段,这些数据被存放在CMOS(一小块特殊(一小块特殊的的RAM,由主板上的电池来供电)之中。通常,由主板上的电池来供电)之中。通常ESCD数据只在系统硬件配置发生改变后才会更新,数据只在系统硬件配置发生改变后才会更新,所以不是每次启动机器时都能够看到所以不是每次启动机器时都能够看到“Update ESCD Success”这样的信息。这样的信息。不过,某些主板的系统不过,某些主板的系统BIOS在保存在保存ESCD数据时使用数据时使用了与了与Windows 9x不相同的数据格式,于是不相同的数据格式,于是Windows 9x在自己的启动过程中会把在

48、自己的启动过程中会把ESCD数据修改成自己的数据修改成自己的格式,但在下一次启动机器时,即使硬件配置没有发格式,但在下一次启动机器时,即使硬件配置没有发生改变,系统生改变,系统BIOS也会把也会把ESCD的数据格式改回来,的数据格式改回来,如此循环,将会导致在每次启动机器时,系统如此循环,将会导致在每次启动机器时,系统BIOS都要更新一遍都要更新一遍ESCD,这就是为什么有些机器在每次,这就是为什么有些机器在每次启动时都会显示出相关信息的原因。启动时都会显示出相关信息的原因。 ESCD更新完毕后,系统更新完毕后,系统BIOS的启动代码将进行的启动代码将进行它的最后一项工作,即根据用户指定的启动

49、顺序从软它的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘或光驱启动。以从盘、硬盘或光驱启动。以从C盘启动为例,系统盘启动为例,系统BIOS将读取并执行硬盘上的主引导记录,主引导记将读取并执行硬盘上的主引导记录,主引导记录接着从分区表中找到第一个活动分区,然后读取并录接着从分区表中找到第一个活动分区,然后读取并执行这个活动分区的分区引导记录,而分区引导记录执行这个活动分区的分区引导记录,而分区引导记录将负责读取并执行将负责读取并执行IO.sys,这是,这是DOS和和Windows 9x最最基本的系统文件。基本的系统文件。Windows 9x的的IO.sys首先要初始化首先要初始化一些重要的

50、系统数据,然后就显示出熟悉的蓝天白云,一些重要的系统数据,然后就显示出熟悉的蓝天白云,在这幅画面之下,在这幅画面之下,Windows将继续进行将继续进行DOS部分和部分和GUI(图形用户界面)部分的引导和初始化工作。(图形用户界面)部分的引导和初始化工作。下面给出系统启动和加载过程的简单流程,如图下面给出系统启动和加载过程的简单流程,如图4.10所示。所示。在这个过程中,计算机病毒可能感染系统引导过程,在这个过程中,计算机病毒可能感染系统引导过程,即感染主引导区和即感染主引导区和Boot引导区。感染引导区的病毒就引导区。感染引导区的病毒就是引导型病毒,引导型病毒先于操作系统驻留内存,是引导型病

51、毒,引导型病毒先于操作系统驻留内存,它通过修改它通过修改BIOS的参数区和的参数区和BIOS中断矢量来保存自中断矢量来保存自己并获得控制权。己并获得控制权。如果系统之中安装有引导多种操作系统的工具软件,如果系统之中安装有引导多种操作系统的工具软件,通常主引导记录将被替换成该软件的引导代码,这些通常主引导记录将被替换成该软件的引导代码,这些代码将允许用户选择一种操作系统,然后读取并执行代码将允许用户选择一种操作系统,然后读取并执行该操作系统的基本引导代码(该操作系统的基本引导代码(DOS和和Windows的基本的基本引导代码就是分区引导记录)。引导代码就是分区引导记录)。图图4.10 PC机的启

52、动和加载流程机的启动和加载流程上面介绍的便是计算机在打开电源开关(或按上面介绍的便是计算机在打开电源开关(或按Reset键)进行冷启动时所要完成的各种初始化工作,如果键)进行冷启动时所要完成的各种初始化工作,如果在在DOS下按下按CtrlAltDel组合键(或从组合键(或从Windows中中选择重新启动计算机)来进行热启动,那么选择重新启动计算机)来进行热启动,那么POST过过程将被跳过去,直接从第程将被跳过去,直接从第3步开始,另外第步开始,另外第5步的检测步的检测CPU和内存测试也不会再进行。可以看到,无论是冷和内存测试也不会再进行。可以看到,无论是冷启动还是热启动,系统启动还是热启动,系

53、统BIOS都一次又一次地重复进都一次又一次地重复进行着这些平时并不太注意的事情,然而正是这些单调行着这些平时并不太注意的事情,然而正是这些单调的硬件检测步骤为正常使用计算机提供了基础。的硬件检测步骤为正常使用计算机提供了基础。中断有硬中断与软中断之分,硬中断产生中断信号,中断有硬中断与软中断之分,硬中断产生中断信号,软中断提供服务。在程序设计中软中断提供服务。在程序设计中“中断中断”是必不可少是必不可少的,系统中的许多基本功能,都是通过中断调用来实的,系统中的许多基本功能,都是通过中断调用来实现的。这里主要讨论软中断,包括现的。这里主要讨论软中断,包括BIOS中断、中断、DOS中断与用户自定义

54、中断。中断与用户自定义中断。4.8 BIOS与与DOS的中断的中断PC机的机的CPU允许有允许有256个中断号(个中断号(00HFFH),各),各个中断号都有一个中断服务例程。每个中断例程都有个中断号都有一个中断服务例程。每个中断例程都有一个入口地址(即中断向量),这一个入口地址(即中断向量),这256个入口地址被个入口地址被安排在内存的安排在内存的0:00:3FFH,占,占1KB空间,被称为中空间,被称为中断向量表。中断向量表共有断向量表。中断向量表共有256项,每项由项,每项由4个字节组个字节组成,两个高位字节是中断服务例程的段地址,两个低成,两个高位字节是中断服务例程的段地址,两个低位字

55、节是段内偏移量,这位字节是段内偏移量,这4个字节的内容就是相应中个字节的内容就是相应中断例程的入口地址。断例程的入口地址。DOS中断的中断号是:中断的中断号是:20H27H及及28H2FH(DOS保留)。对中断号保留)。对中断号21H,还有很多子功能,还有很多子功能调用,其子功能调用号为调用,其子功能调用号为00H62H,其中,其中1DH20H,32H,34H,37H,50H53H,55H,60H,61H号为号为DOS内部使用(其中很多是未公开的功能调内部使用(其中很多是未公开的功能调用)。有一些中断号是留给用户程序使用的。用)。有一些中断号是留给用户程序使用的。在在256个中断中,个中断中,

56、BIOS中断安排在中断安排在05H,10HIFH,41H和和46H,其中有的中断号也有子功能调用,如,其中有的中断号也有子功能调用,如10H,它的子功能调用号为,它的子功能调用号为00H0FH;又如;又如13H,它有子功能调用号它有子功能调用号0005、08H0DH、10H、11H、14H17H等。等。有些中断与功能调用除了在有些中断与功能调用除了在AH或或AL中指出中断号或中指出中断号或功能调用号外,还有其他入口参数,并且还带有返回功能调用号外,还有其他入口参数,并且还带有返回参数。一些标准的中断功能调用的详细资料,可查阅参数。一些标准的中断功能调用的详细资料,可查阅DOS/BIOS使用详解

57、使用详解。在在DOS操作系统中,系统程序和应用程序都会频繁调操作系统中,系统程序和应用程序都会频繁调用中断服务程序。计算机病毒常常寄生在中断服务程用中断服务程序。计算机病毒常常寄生在中断服务程序中,通过系统程序或应用程序对中断功能的调用,序中,通过系统程序或应用程序对中断功能的调用,病毒程序就获得了控制权,进行传播和破坏系统。病毒程序就获得了控制权,进行传播和破坏系统。计算机病毒的制造者会利用各种手段,寻找各种机会,计算机病毒的制造者会利用各种手段,寻找各种机会,来达到目的。计算机系统的规模愈来愈大,系统软件来达到目的。计算机系统的规模愈来愈大,系统软件和应用软件多种多样,复杂庞大的软件系统难

58、免不出和应用软件多种多样,复杂庞大的软件系统难免不出现各种漏洞。其中作为计算机基础的系统软件,其使现各种漏洞。其中作为计算机基础的系统软件,其使用范围广泛,病毒制造者的攻击目标直接指向系统软用范围广泛,病毒制造者的攻击目标直接指向系统软件,特别是系统软件中的安全漏洞就是不言而喻的了。件,特别是系统软件中的安全漏洞就是不言而喻的了。4.9 计算机病毒与系统安全漏洞计算机病毒与系统安全漏洞黑客可以利用系统的安全漏洞,非法获取受害者计算黑客可以利用系统的安全漏洞,非法获取受害者计算机中的数据,获取非法利益,进行违法犯罪活动。计机中的数据,获取非法利益,进行违法犯罪活动。计算机病毒制造者与黑客可能有某

59、种区别,他们利用系算机病毒制造者与黑客可能有某种区别,他们利用系统安全漏洞,使病毒能够得以更加隐蔽和更加广泛的统安全漏洞,使病毒能够得以更加隐蔽和更加广泛的传播,造成对系统更大的危害。传播,造成对系统更大的危害。系统软件开发商可能随时发现漏洞,及时提供补丁程系统软件开发商可能随时发现漏洞,及时提供补丁程序来修复各种安全漏洞,使系统更加健全。人们随时序来修复各种安全漏洞,使系统更加健全。人们随时可能见到像图可能见到像图4.11这样的布告是不足奇怪的。从相反这样的布告是不足奇怪的。从相反的方面看,黑客和病毒制造者也为系统软件的完善和的方面看,黑客和病毒制造者也为系统软件的完善和发展做出了发展做出了

60、“贡献贡献”,他们的攻击最终使得系统安全,他们的攻击最终使得系统安全漏洞得以暴露,经过系统软件开发商的修复后,系统漏洞得以暴露,经过系统软件开发商的修复后,系统软件将更加安全、更加稳定。软件将更加安全、更加稳定。图图4.11 一个修复系统安全漏洞的通告一个修复系统安全漏洞的通告1. 名词解释名词解释(1) MBR(2) BPB(3) PSP(4) PE(5) COFF(6) VxD(7) 文件头文件头(8) 安全漏洞安全漏洞习题习题2. 简答题简答题(1) 简述执行程序的启动过程。简述执行程序的启动过程。(2) 简述引导型病毒的寄生环境。简述引导型病毒的寄生环境。(3) 简述简述com型文件结

61、构与型文件结构与exe型文件结构的特点。型文件结构的特点。(4) 简述简述exe文件的装入与执行过程。文件的装入与执行过程。(5) PE型文件是怎样的一种结构体?它是如何定义型文件是怎样的一种结构体?它是如何定义的?的?(6) 画出画出PE型文件的结构图,并对相应部分进行说型文件的结构图,并对相应部分进行说明。明。(7) VxD文件结构由哪几个段组组成?其存储格式文件结构由哪几个段组组成?其存储格式如何?如何?(8) 说明计算机的启动和加载过程。说明计算机的启动和加载过程。(9) 什么是系统安全漏洞?试举例说明。什么是系统安全漏洞?试举例说明。3. 论述题论述题(1) 根据文件结构的特点,分析说明文件型病毒的根据文件结构的特点,分析说明文件型病毒的寄生环境。寄生环境。(2) 分析说明计算机一般存在哪些安全漏洞以及计分析说明计算机一般存在哪些安全漏洞以及计算机病毒是如何利用这些安全漏洞从而达到寄生目的算机病毒是如何利用这些安全漏洞从而达到寄生目的的。的。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号