第7章-计算机病毒编制关键技术及典型计算机课件_第1页
第7章-计算机病毒编制关键技术及典型计算机课件_第2页
第7章-计算机病毒编制关键技术及典型计算机课件_第3页
第7章-计算机病毒编制关键技术及典型计算机课件_第4页
第7章-计算机病毒编制关键技术及典型计算机课件_第5页
已阅读5页,还剩248页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章计算机病毒编制关键技术

及典型计算机病毒7.1DOS病毒分析7.2Windows病毒分析7.3网络病毒分析7.4宏病毒分析7.5木马病毒分析7.6手机(GSM)病毒分析习题第7章计算机病毒编制关键技术

及典型计算机病毒7.1引导型病毒是指病毒侵入系统引导区,从而引发破坏行为的一种病毒特性。DOS启动时,绝大多数引导型病毒感染硬盘主引导扇区和DOS引导扇区。7.1DOS病毒分析

7.1.1引导型病毒引导型病毒是指病毒侵入系统引导区,从而引发破坏行为的一种病毒1.DOS下的磁盘引导区结构在DOS操作系统控制下,磁盘引导区一般由3部分组成:主引导记录(MainBootRecord)、磁盘分区表(DiskPartitionTable,PDT)和主引导记录有效标志字。(1)硬盘的主引导记录结构主引导记录结构如表7.1(见书178页)所示。1.DOS下的磁盘引导区结构分区表自偏移1BEH处开始,共64个字节,每16个字节为一个分区说明项,存放分区结构信息,因此表中可填入4个分区信息。硬盘主引导记录程序存放在分区表的0000H~00D9H处,它的功能是读出自举分区的Boot程序,并把控制转移到分区Boot程序。程序流程如下:①将本来读入到0000:7C00H处的硬盘主引导记录程序移至0000:61BH处;②顺序读入4个分区表的自举标志,以找出自举分区,若找不到,转而执行INT18H的Boot异常执行中断程序;分区表自偏移1BEH处开始,共64个字节,每16个字节为一个③找到自举分区后,检测该分区的系统标志,若为32位FAT表或16位FAT表但支持13号中断的扩展功能,就转到执行13号中断的41号功能调用进行安装检验,检验成功,就执行42号扩展读功能调用把Boot区程序读入到内存0000:7C00H处,成功,跳到第⑤步,若读失败或系统标志为其他,就调用13号中断的读扇区功能调用把Boot读到0000:7C00H;③找到自举分区后,检测该分区的系统标志,若为32位FAT表④用13号中断的读扇区功能时,用两种方式分别进行5次试读。第一种方式是直接从自举分区的头扇区读入Boot程序,若读成功,但结束标志不是55AA,则改用第二种方式,又如果用第一种方式试读5次均不成功,就改用第二种方式。若两种方式试读均失败,就转到出错处理程序;⑤读入Boot区程序成功,转至0000:7C00H处执行Boot程序。④用13号中断的读扇区功能时,用两种方式分别进行5次试读。(2)分区表结构分区表占据偏移地址1BEH~01FDH范围的空间,共64B,每16B为一个分区说明项,存放分区结构信息,如表7.2(见书179页)所示。①每一个分区表中扩展分区说明项实际上指示下一个分区表的位置(簇、磁头号、扇区号)。最后一个分区表没有扩展分区说明项。②每一个分区表都会有一个实际分区说明项,也就是对逻辑盘的实际起始、终止位置进行说明。③除逻辑盘主引导记录及分区表共占用一个扇区,其他分区表则各占一个扇区,自该扇区01BEH处开始,以55AAH结束。(2)分区表结构2.引导型病毒的运行机制引导型病毒是把原来的主引导记录保存后用自己的程序替代掉原来的主引导记录。启动时,当病毒体得到控制权,在做完了处理后,病毒将保存的原主引导记录读入0000:7C00H处,然后将控制权交给原主引导记录进行启动。这类病毒的感染途径是通过磁盘操作引起的。例如,当用一个染毒的系统软盘启动计算机时,就有可能将病毒传染给硬盘,从而引起硬盘引导区染毒;同样,当某软盘在一台染毒的计算机上运行时,硬盘上的病毒就可能感染软盘。2.引导型病毒的运行机制因此,引导型病毒能否成功运行的关键技术涉及有以下几个方面:保存主引导记录、调用BIOS磁盘服务功能、寻找病毒感染途径和病毒驻留位置。(1)保存原始主引导记录众所周知,文件型病毒用以保存被感染修改的部分是文件。引导型病毒是否也可以使用文件存储被覆盖的引导记录呢?答案是否定的。由于主引导记录病毒先于操作系统执行,因而不能使用操作系统的功能调用,而只能使用BIOS的功能调用或者使用直接的I/O设计。一般使用BIOS的磁盘服务将主引导记录保存于绝对的扇区内。由于0道0面2扇区是保留扇区,因而通常使用它来保存。因此,引导型病毒能否成功运行的关键技术涉及有以下几个方面:保(2)BIOS磁盘服务功能的调用在引导型病毒的程序代码中,常常会用到BIOS磁盘服务功能的调用,INT13H中断调用子功能02H、03H能进行磁盘读写操作,因此,常被病毒代码利用。利用INT13H子功能02H调用读扇区入口为:AH=02H,AL=读入的扇区数,CH=磁道号,CL=扇区号(从1开始),DH=头号,DL=物理驱动器号,ES:BX->要填充的缓冲区;返回值为:当CF置位时表示调用失败,AH=状态,AL=实际读入的扇区数。(2)BIOS磁盘服务功能的调用利用INT13H子功能03H调用写扇区入口为:AH=03H,AL=写入的扇区数,CH=磁道号,CL=扇区号(从1开始),DH=头号,DL=物理驱动器号,ES:BX->缓冲区;返回值为:当CF置位时表示调用失败,AH=状态,AL=实际写入的扇区数。(3)病毒感染途径通常这类病毒通过截获中断向量INT13H进行系统监控。当存在有关于软盘或硬盘的磁盘读写时,病毒将检测其是否干净,若尚未感染则感染之。利用INT13H子功能03H调用写扇区入口为:AH=03H(4)驻留位置通常病毒通过修改基本内存的大小来获取自己驻留的空间。基本内存大小的存储位置在40H:13H,单位为KB。病毒体存在于最后的一点内存中。(4)驻留位置3.典型的引导型病毒(1)病毒名:DiskKiller病毒别名:磁盘杀手特征代码:C310E2F2C606F301FF90EB55病毒长度:520B病毒特征:感染Boot扇区,当用染有该病毒的软盘启动系统时,病毒进入内存,并感染硬盘。当进行I/O操作时,病毒会感染其他软盘。3.典型的引导型病毒当病毒侵入软盘时,除感染软盘Boot扇区外,额外占用3个簇,并将其在FAT表中标为坏簇。病毒编写者此时犯了一个错误,即将病毒占用的3个簇相邻的一个簇也标为坏簇了。当病毒侵入硬盘时,除感染硬盘Boot扇区外,还将自身隐藏在0柱0面0道的最后5个扇区中。在某些硬盘中这些扇区属于保留扇区,受到系统的保护,用DEBUG的L命令不可能看到它们,必须用DEBUG的A命令编写一段汇编程序才能看到。当病毒侵入软盘时,除感染软盘Boot扇区外,额外占用3个簇,在计算机内部,病毒占用了INT8,设置了内部计数器。对计算机每秒13.2s的时钟中断进行计数。当计数值达到300000H(也即3145728/18.2=172842s,约合48h)时,病毒被触发。这时,键盘死锁,一些杂乱数据被写入硬盘,直至全部数据被毁坏为止。该病毒在I/O操作时,会随时将计数器的值写入硬盘保存起来。由于计数器的值被保存在硬盘中,病毒可以对工作时间进行累计。达到预定时间,病毒引爆。在计算机内部,病毒占用了INT8,设置了内部计数器。对计算机(2)病毒名:Michelangelo病毒别名:米开朗基罗特征代码:33C9B404CD1A81FA06037401CB33D2B90100B8D9病毒长度:430B病毒特征:每年3月6日(意大利画家米开朗基罗的生日)发作,病毒盘启动后,内存总量减少1KB。该病毒占用中断INT13H,对硬盘而言,将原主引导扇区写入0柱0头7扇区;对软盘来说,若为360KB软盘,则将Boot扇区写入0道1头3扇区,对1.2MB、1.4MB软盘,则将原Boot扇区写入0道1头14扇区。(2)病毒名:Michelangelo在染毒扇区的13EH处,有病毒特征码值:33C9B404CD1A81FA06037401CB33D2B90100B8D9。该病毒用INT1AH的04号功能,查询系统日期,当日期值为3月6日时,病毒被触发,病毒发作时,将磁盘从0道0头开始,对0~255个扇区全部乱写;一旦乱写,无法恢复。FAT表、目录全部被破坏。在染毒扇区的13EH处,有病毒特征码值:33C9B40(3)病毒名:PingPong病毒别名:小球病毒特征:病毒触发后,屏幕上显示一个跳动的小球,小球碰到屏幕4个边缘会反弹,它对西文屏幕显示干扰不大,对中文屏幕扰乱较大。病毒感染Boot扇区,使用染毒磁盘启动系统时,病毒进驻内存。病毒可以感染不带DOS系统的软盘,用这种染毒盘启动系统时,会显示出错信息,要求用户插入系统盘,此时病毒已经进入内存,任何插入的清洁的DOS盘片在启动时,都可能受到感染。(3)病毒名:PingPong病毒除占用Boot扇区外,在磁盘中还占用了一个空簇,其中一个扇区用于存放病毒代码,另一扇区保存原Boot扇区代码,这个被病毒占用的串簇被标为“坏簇”以防止被操作系统写入别的数据。该病毒不会攻击80286、80386CPU的微机,因为,病毒中使用的某些代码在上述微机中不合法。小球病毒只能在8086和8088CPU的微机上工作。当小球病毒感染80286、80386CPU的微机时,将会死机,虽然系统崩溃没有什么危险,但是个麻烦。病毒除占用Boot扇区外,在磁盘中还占用了一个空簇,其中一个4.病毒名:Marijuana病毒别名:大麻病毒特征:病毒触发后,屏幕上显示如下信息:“YourPCisnowStone!”感染大麻病毒的软盘Boot扇区中,可找到如下字符串:“YourPCisnowStone!”“LEGALISEMARIJUANA!”病毒占用了软盘的Boot扇区,将原Boot扇区存放在0道1侧3扇区;对硬盘而言,病毒占用硬盘的主引导扇区,将原主引扇区保存在0柱0头7扇区。4.病毒名:Marijuana文件型病毒是DOS病毒中的大家族,文件病毒有广义和狭义之称。广义的可执行文件病毒包括了通常所说的可执行文件病毒、源码病毒,甚至bat病毒和Word宏病毒,狭义的可执行文件病毒即com型和exe型病毒。这里主要介绍com和exe型病毒。7.1.2文件型病毒文件型病毒是DOS病毒中的大家族,文件病毒有广义和狭义之称。1.com和exe文件结构(1)com文件结构及原理com文件结构比较简单,它包含程序的一个绝对映像,即为了运行程序准确的处理器指令和内存中的数据,MS-DOS通过直接把该映像从文件复制到内存,从而加载com程序,而不做任何改变。1.com和exe文件结构为加载一个com程序,MS-DOS首先试图分配内存,因为com程序必须位于一个64KB的段中,所以com文件的大小不能超过65024(64KB减去用于PSP的256B和用于一个起始堆栈的至少256B)。如果MS-DOS不能为程序、一个PSP、一个起始堆栈分配足够内存,则分配尝试失败。否则,MS-DOS分配尽可能多的内存(直至所有保留内存),即使com程序本身不能大于64KB。在试图运行另一个程序或分配另外的内存之前,大部分com程序释放任何不需要的内存。为加载一个com程序,MS-DOS首先试图分配内存,因为co分配内存后,MS-DOS在该内存的前256B建立一个PSP,如果PSP中的第一个FCB含有一个有效驱动器标识符,则置AL为00H,否则置为0FFH。MS-DOS还置AH为00H或0FFH,这依赖于第二个FCB是否含有一个有效驱动器标识符。建造PSP后,MS-DOS在PSP后立即开始(偏移100H)加载com文件,它置SS、DS和ES为PSP的段地址,接着创建一个堆栈。为创建这个堆栈,在已分配了至少64KB内存的情况下,MS-DOS置SP为0000H;否则,它置寄存器为比所分配的字节总数大2的值。最后,将0000H进栈。分配内存后,MS-DOS在该内存的前256B建立一个PSP,MS-DOS通过把控制传递给偏移100H处的指令而启动程序。程序设计者必须保证COM文件的第一条指令是程序的入口点。(2)exe文件结构及原理exe文件比较复杂,属于一种多段的结构,是DOS最成功和复杂的设计之一。要了解exe文件,首先需要了解exe文件的文件头结构。每个exe文件包含一个文件头和一个可重定位程序映像。文件头包含MS-DOS用于加载程序的信息。文件头还指向一个重定位表,该表包含指向程序映像中可重定位段地址的指针链表。exe文件的文件头结构如表7.3(见书187页)所示。MS-DOS通过把控制传递给偏移100H处的指令而启动程序。程序映像,包含处理器代码和程序的初始数据,紧接在文件头之后。它的大小以字节为单位,等于exe文件的大小减去文件头的大小,也等于exHeaderSize的域的值乘以16。MS-DOS通过把该映像直接从文件复制到内存加载exe程序,然后调整定位表中说明的可重定位段地址。定位表是一个重定位指针数组,每个指向程序映像中的可重定位段地址。文件头中的exRelocItems域说明了数组中指针的个数,exRelocTable域说明了分配表的起始文件偏移量。每个重定位指针由两个16位值组成:偏移量和段值。程序映像,包含处理器代码和程序的初始数据,紧接在文件头之后。为加载exe程序,MS-DOS首先读文件头以确定exe标志并计算程序映像的大小。然后它试图申请内存。首先,它计算程序映像文件的大小加上PSP的大小再加上EXEHEADER结构中的exMinAlloc域说明的内存大小这3者之和。如果总和超过最大可用内存块的大小,则MS-DOS停止加载程序并返回一个出错值。否则,它计算程序映像的大小加上PSP的大小再加上EXEHEADER结构中exMaxAlloc域说明的内存大小之和,如果第二个总和小于最大可用内存块的大小,则MS-DOS分配计算得到的内存量。否则,它分配最大可用内存块。为加载exe程序,MS-DOS首先读文件头以确定exe标志并分配完内存后,MS-DOS确定段地址,也称为起始段地址,MS-DOS从此处加载程序映像。如果exMinAlloc域和exMaxAlloc域中的值都为零,则MS-DOS把映像尽可能地加载到内存最高端。否则,它把映像加载到紧挨着PSP域之上。分配完内存后,MS-DOS确定段地址,也称为起始段地址,MS接下来,MS-DOS读取重定位表中的项目调整所有由可重定位指针说明的段地址。对于重定位表中的每个指针,MS-DOS寻找程序映像中相应的可重定位段地址,并把起始段地址加到它之上。一旦调整完毕,段地址便指向了内存中被加载程序的代码和数据段。MS-DOS在所分配内存的最低部分建造256B的PSP,把AL和AH设置为加载com程序时所设置的值。MS-DOS使用文件头中的值设置SP与SS,调整SS初始值,把起始地址加到它之上。MS-DOS还把ES和DS设置为PSP的段地址。最后,MS-DOS从程序文件头读取CS和IP的初始值,把起始段地址加到CS之上,把控制转移到位于调整后地址处的程序。接下来,MS-DOS读取重定位表中的项目调整所有由可重定位指2.文件型病毒编制原理文件型病毒的编制方法一般是将病毒程序植入正常程序中或是将病毒程序覆盖正常程序的部分代码,以源文件作为病毒程序的载体,将病毒程序隐藏其间。正常情况下,看不出程序有可变化,当一定的条件满足时,病毒发作,感染和破坏系统。一般作法是利用com或exe文件的文件头,找到可执行文件的入口,将病毒程序安插到程序中,重新设置或修改文件的起始代码,并使其能转到病毒程序运行。病毒程序代码一般分为3个模块:初始设置模块、感染模块和破坏模块。下面以com文件为例介绍其病毒编写方法。2.文件型病毒编制原理文件型病毒要感染com文件有两种方法,一种是将病毒加载在com文件前部,一种是加在文件尾部。在前部时原文件的前3B被修改。当DOS加载exe文件时,根据文件头信息,调入一定长度的文件,设置SS、SP从CS:IP开始执行。病毒一般将自己加在文件的末端,并修改CS、IP的值,使其指向病毒起始地址,修改文件长度信息、SS和SP。com文件是一种单段执行结构,起源于CPM-86操作系统,其执行文件代码和执行时内存映像完全相同,起始执行偏移地址为100H,对应于文件的偏移是0。文件型病毒要感染com文件有两种方法,一种是将病毒加载在co(1)病毒编制实验以com型文件(如DOS6.22英文版中的程序)为例,进行如下病毒实验:①利用DEBUG程序,读出DOS6.22英文版中的程序。代码如下:C:\>debug-u0CA4:0100B8371E MOV AX,1E37 ;注意前3个字节的内容(病毒修改的地方)0CA4:0103BA3008 MOV DX,08300CA4:01063BC4 CMP AX,SP0CA4:01087369 JNB 0173(1)病毒编制实验0CA4:010A8BC4 MOV AX,SP0CA4:010C2D4403 SUB AX,03440CA4:010F90 NOP0CA4:011025F0FF AND AX,FFF00CA4:01138BF8 MOV DI,AX0CA4:0115B9A200 MOV CX,00A20CA4:011890 NOP0CA4:0119BE7E01 MOV SI,017E0CA4:011CFC CLD0CA4:011DF3 REPZ0CA4:011EA5 MOVSW0CA4:011F8BD8 MOVBX,AX-r0CA4:010A8BC4 MOV AX,SPAX=0000BX=0000CX=09F1DX=0000SP=FFFEBP=0000SI=0000DI=0000DS=0CA4ES=0CA4SS=0CA4CS=0CA4IP=0100NVUPEIPLNZNAPONC0CA4:0100B8371EMOVAX,1E37②从0CA4:0AF1处开始,增加一段病毒代码。-aaf10CA4:0AF1movah,00CA4:0AF3int16 ;等待按键0CA4:0AF5cmpa1,1b ;等待按Esc键0CA4:0AF7jnzaf10CA4:0AF9movwordptr[100],37b8 ;恢复程序开始的3个字节AX=0000BX=0000CX=09F1DX=0000SP0CA4:0AFFmovbyteptr[102],1e0CA4:0B04pushcs ;进栈CS:1000CA4:0B05movsi,1000CA4:0B08pushsi0CA4:0B09retf ;retf回到CS:100,程序开始处0CA4:0B0A③修改原程序0CA4:0100处的值。0CA4:0AFFmovbyteptr[102],1-a1000CA4:0100jmpaf1;将程序开头改成跳转到修改的模块0CA4:0103-rcxCX09F1:a0a-wWriting00A0Abytes-q-a100④结果。程序写盘退出后,再执行more程序,发现如果不按Esc键程序无法执行。这是因为,首先在源程序的尾部添加了一段程序(相当于病毒模块),该程序是等待接受键盘输入,当键盘输入Esc时,恢复源程序并返回执行源程序;然后将源程序开始处的指令修改成无条件跳转到所添加程序的开始位置,所以,当程序启动后,直接转去执行所添加的程序段。④结果。程序写盘退出后,再执行more程序,发现如果不按E(2)com文件型病毒运行机制感染com文件的典型做法是在源文件的尾部增加一段病毒代码,并将源文件的起始指令修改为无条件跳转到病毒代码开始处,头结构部分如下:cs:0100jmpendoffile ;db0e9h ;dwsizeofcomfile...endoffile:virusstart: viruscode movax,orgcode mov[100],ax(2)com文件型病毒运行机制 moval,[orgcode+2] mov[102],alvirussize=$-virusstartresume: jmp100 ;db0e9h ;dw-(sizeofcom+virussize) orgcodedb3dup(?) ;源文件由0100开始的3个字节感染文件,先将开始的3字节保存在orgcode中,然后更改为0e9h,sizeofcomfile。将resume开始的3字节改为0e9h,–(sizeofcom+virussize)。将病毒写入com文件的末尾。 moval,[orgcode+2]完整的感染代码还需要有已感染的判断和文件大小的判断,如下介绍:假设DS:DX指向文件名VirusSize,VirusStart的定义如上,并做以下的修改:保存开始的4个字节db90h,0E9hdwsizeofcom替换,以0E990h为感染标记...movax,3d01hint21h ;openforr/w

jcOpenError完整的感染代码还需要有已感染的判断和文件大小的判断,如下介绍pushdxxchgax,bxmovax,4202hxorcx,cxxordx,dxint21h ;seektoendordx,dxjnzcomplete ;filelargerthan64k,donotinfectcmpax,0FEEEh-VirusSize-11jnbcomplete;comfiletoolargeforinfectcmpax,4Jbcomplete ;filelessthan4bytes,donotinfectedpushdxmovdi,offsetorgcodemov[di+6],axadd[di+6],VirusSize;generatecodetoreplacemovax,4200hxorcx,cxxordx,dxint21h ;seektobeginmovcx,4movdx,dimovah,3fhint21h ;read4bytesmovdi,offsetorgcode jccomplete cmpwordptr[di],0E990h ;ifhasbeeninfected,shouldbe ;nop ;jmpXXXXjzcompletemovcx,4adddx,cxmovah,40hint21h ;write4bytetothebeginning movax,4202h xorcx,cx xordx,dx int21h ;seektoend jccomplete movah,40h movdx,VirusStart movcx,VirusSize+11 int21h ;writeVirusCodetoCOMcomplete: movah,3fh int21h ;closefileErrorOpen:... movah,40h3.典型的文件型病毒(1)Vienna病毒病毒别名:维也纳感染类型:com文件病毒特征:病毒运行时,首先在当前文件目录或搜索路径的一个目录中,寻找第一个未被感染的com文件,并对其进行感染。受感染的com文件长度增加648B。3.典型的文件型病毒感染com文件时,在宿主程序的开始3个字节放置一条JMP命令,病毒代码放置在宿主程序的尾部。用程序开头处的JMP命令跳向病毒代码,使病毒代码在宿主程序之前获得运行权。该病毒每次运行都企图感染一个com文件,如果被感染的磁盘上贴有写保护标签时,屏幕上显示报警信息:“WriteprotecterrorWritingdrivex”。感染com文件时,在宿主程序的开始3个字节放置一条JMP命令(2)1701/1704-B病毒别名:雨点感染类型:com文件病毒特征:被感染的宿主程序开始处3B放置一条JMP命令。病毒代码放在宿主程序的后部。感染后,文件增长1701B或1704B。病毒中含有682B的密码。宿主程序开始处原来的3B被隐藏在密码中,静态时,不能找出宿主程序开始处的原来的3B信息,虽然密码算法很简单,但为病毒的治疗设置了障碍。(2)1701/1704-B(3)Jerusalem病毒别名:耶路撒冷、以色列、犹太人、1813、黑色星期五感染类型:com文件、exe文件、ovl文件病毒特征:对com文件做单次感染,病毒代码放在com文件的头部。对exe文件做重复感染,可使exe文件在重复感染中不断膨胀,占据大量磁盘空间。病毒感染exe文件时,病毒代码贴附在exe文件的尾部。病毒中有一个毁灭性模块,可以使计算机内部数据乱移,并有能力破坏AT机中由电池供电的CMOSRAM区的信息。(3)Jerusalem(4)病毒名:YankeeDoodle病毒别名:杨基歌感染类型:每一个可执行文件病毒长度:2890+(0~15)B病毒特征:利用内存控制块MCB常驻内存;病毒进驻内存以后,感染每一个可执行文件;在时间为17:00时,如果病毒已常驻内存,将演奏杨基歌。(4)病毒名:YankeeDoodle(5)病毒名:4096病毒(100年)病毒别名:100年病毒长度:4096B病毒特征:病毒将自身藏在内存高端,它明明占用了内存区,可是当BIOS检查内存容量时,却不能发现病毒占用了内存空间。受感染的文件头部被病毒篡改,如果病毒进驻内存时用户查看文件头部数据,病毒将保存在别处的源文件头部显示给用户,使之不能觉察。(5)病毒名:4096病毒(100年)受感染的文件长度增加4KB,病毒在文件目录中做了标记。执行MR命令时,病毒能识别哪些文件是感染过的,在显示该文件有关信息时,能把病毒修改过的文件长度、日期、文件头部隐藏起来,把正确的原数值显示给用户看。该病毒含有密码,并且使用了高超的反动态跟踪技巧。病毒编写时,作者犯了一个错误,它忘记把文件年份、文件长度写入文件目录,从而严重损坏文件。受感染的文件长度增加4KB,病毒在文件目录中做了标记。执行M所谓混合型病毒,即既能感染引导区,又能感染文件的病毒。但并非将文件型病毒和引导型病毒简单的叠加在一起,其中有一个转换过程,这是最关键的。一般采取以下方法:在文件中的病毒执行时将病毒写入引导区,这是很容易理解的。染毒硬盘启动时,用引导型病毒的方法驻留内存,但此时DOS并未加载,无法修改INT21中断,也就无法感染文件,可以用这样的办法,修改INT8中断,保存INT21中断目前的地址,用INT8中断服务程序监测INT21中断的地址是否改变,若改变则说明DOS已加载,则可修改INT21中断指向病毒传染段。以上是混合型病毒关键之处。7.1.3混合型病毒所谓混合型病毒,即既能感染引导区,又能感染文件的病毒。但并非主要指针对Windows9x操作系统的病毒。现在的计算机用户一般都安装Windows操作系统。Windows病毒一般感染Windows9x系统,其中最典型的病毒有CIH病毒。但这并不意味着可以忽略系统是WindowsNT系列包括Windows2000的计算机。一些Windows病毒不仅在Windows9x上正常感染,还可以感染WindowsNT上的其他文件。主要感染的文件扩展名为exe、scr、dll、ocx等。7.2Windows病毒分析

7.2.1Windows病毒的特点主要指针对Windows9x操作系统的病毒。现在的计算机用在早期版本的Windows中,DOS管理文件系统。而在Windows95/98/2000/NT中就不同了,Windows95/98/2000/NT通过使用设备驱动和32位程序来管理传统文件系统。Windows95/98/2000/NT要求确保文件系统的完整性。为了达到以上目的,禁止DOS程序(和传统病毒)对硬盘进行直接读写,除非它们用特殊的Windows专用代码。但是,在Windows95/98/2000/NT中允许DOS程序和病毒对软盘进行直接读写。以上对病毒十分有利,对用户来说是十分不幸的;病毒仍然可以用相同的方式工作,如同在硬盘中工作一样。并且Windows95/98/2000/NT很少能阻止它。在早期版本的Windows中,DOS管理文件系统。而在Win当用户没有注意到用一张有病毒的软盘来引导时,病毒能感染MBR。病毒将在每次计算机引导时装载,在每次DOS对话框时安装到系统中。这样当用户对软盘进行操作时,病毒可以将自身复制到另外的软盘,从而蔓延到其他的计算机。另外,和DOS一样,Windows95/98/2000/NT没有文件等级保护。利用文件进行传播的病毒仍然可以在Windows95/98/2000/NT下进行复制。这与其他的32位操作系统一样,例如OS/2,它们也允许对文件进行写操作。这样,文件型病毒恰恰像它们在DOS环境下一样进行复制。当用户没有注意到用一张有病毒的软盘来引导时,病毒能感染MBR一些使Windows95/98/2000/NT有吸引力的新技术,实际上帮助病毒在整个网络中复制。例如工作组网络环境十分容易地使病毒快速传播。再有,由于Windows95/98/2000/NT没有文件等级保护,如果在网络中的计算机被病毒感染,在对等网络中共享的没有被保护的驱动器和文件将很快被感染。随着Windows操作系统的流行,也催生了如下新型病毒。一些使Windows95/98/2000/NT有吸引力的新OLE2(ObjectLinkingandEmbedded)病毒:这种类型的病毒通过将自己假扮成公共服务的一个OLE2服务器来进行传播。之后,当一个OLE2客户申请一个OLE2服务器来提供公共服务时,实际上病毒取得了控制权。它能将自己复制到其他文件和计算机,之后运行它替换了的原有OLE2服务器。这个应用程序甚至不知道自己是同另一个病毒进行“通话”,而不是实际上的OLE2服务器。如果这个OLE2服务器在一个完全不同网络计算机,这个病毒能很快地在网络上传播。OLE2(ObjectLinkingandEmbe扩展Shell病毒:Microsoft使这种Shell在Windows系统中完全扩展来允许自定义。从技术上讲,病毒能成为其中的一个扩展,因为Windows95对于扩展Shell不需要确认,因此病毒可以写成一种扩展Shell,这样就可以取得控制权并且复制自身。扩展Shell病毒:Microsoft使这种Shell在W虚拟设备驱动病毒VxD病毒(VirtualDeviceDriver):Windows系统VxD对整个计算机具有完全控制权。如果通过编制特定程序,它可以直接对硬盘进行写操作。它具有写Windows系统Kernel模块相同的特权,因此它具有广泛的自由来控制系统。在Windows系统中增加了动态装载VxD能力,是指一个VxD,不需要每次都在内存中,而是在系统需要时。这意味着病毒可以用一段很小的代码来激活一个动态VxD,这可以导致严重的系统崩溃。因为Windows95/98对VxD的行为没有限制,因此VxD病毒可以绕过所采用的任何保机制。虚拟设备驱动病毒VxD病毒(VirtualDeviceD另外一种可能产生病毒的原因是Windows的易操作编程工具的流行。过去,病毒的编制者需要了解大量的关于汇编和操作系统的知识来创建TSR程序来进行复制。对于Windows来说,许多新手可以用可视化开发工具的高级语言来编写病毒,因为它们更像用户运行的其他程序,因此很难检测出来。另外一种可能产生病毒的原因是Windows的易操作编程工具的(1)感染任何一个病毒都需要有寄主,而把病毒代码加入寄主程序中(伴侣病毒除外)。在Windows操作系统中,一般文件型病毒是以PE文件作为病毒代码的寄主程序,病毒的感染过程,就是病毒侵入PE文件的过程。7.2.2Windows病毒的运行机制(1)感染7.2.2Windows病毒的运行机制(2)分配驻留所需内存对于驻留形的病毒,分配驻留所需内存是必需的。在DOS下使用由于所有的应用程序都映射在相同的线性地址空间里,使用一般的内存分配调用就足够了。而在Win32下,每个应用程序都有自己的线性地址空间,必须使用特殊的函数分配2GB以上的系统地址。(2)分配驻留所需内存(3)截留FILEI/O操作驻留型的病毒通过截留FILEI/O来激活,可以通过使用VxD服务IFSMgr_InstallFileSystemAPIHook(如CIH)或截留VxDCall中的DOSServicescallback(如HPS)实现。Windows中截留文件I/O操作在病毒中使用的主要有两种:①使用VxDCallIFSMgr_InstallFileSystemHook。②截留Kernel32.dll中导出的第一个函数VxDCall对DOSINT21的呼叫(EAX=2A0010)。(3)截留FILEI/O操作VxDCall的代码如下:moveax,dwordptr[esp+04]popdwordptr[esp]callfwordptrcs:[xxxxxxxx]只要将这个地址指向的地址改为自己的过程入口,就捕获了所有的VxDCall。进入这个过程时:eax=servicenumber,如果是DOSINT21将是2A0010esp[2c]调用Int21时eax的值其他寄存器为调用时所需的值(段寄存器无用)。以后的就和在DOS下写病毒没有差别了。VxDCall的代码如下:1.利用Wininit.ini文件技术Wininit.ini文件属于Windows启动配置文件,主要用于对一些在Windows运行过程中无法进行删除、更名或更新等操作的文件在启动过程中进行上述操作,它存在的时间很短,操作完成后即被自动删除。Wininit.ini文件的格式简述如下:Wininit.ini文件有3个可能的段,其中“rename”段的格式为:7.2.3Windows病毒编制的关键技术1.利用Wininit.ini文件技术7.2.3Win[rename]…filename1=filename2…行“filename1=filename2”相当于依次执行“copyfilename2filename1”及“delfilename2”这两个DOS命令。启动时,Windows将用filename2覆盖filename1,再删除filename2,这就实现了用filename2更新filename1的目的,如果filename1不存在,实际结果是将filename2改名为filename1;如果要删除文件,可令filename1为nul。[rename]在Windows中,一个可执行文件如果正在运行或某个库文件(*.dll、*.vxd、*.sys等)正在被打开使用,则不能被改写或删除。例如,在资源管理器中无法删除explorer.exe,或者在Windows的GDI界面下,删除显示驱动程序库文件、文件子系统库文件等。若要对这些文件进行升级,改动,就必须在Windows保护模式核心启动前进行,即利用基于Wininit.ini文件的一个机制来完成这个任务。在Windows中,一个可执行文件如果正在运行或某个库文件(这个机制是:将删除或改写这类文件的应用程序按一定的格式把命令写入Wininit.ini,Windows在重启时,将在Windows目录下搜索Wininit.ini文件,如果找到,就遵照该文件指令删除、改名、更新文件,完成任务后,将删除Wininit.ini文件本身,继续启动过程。所以Wininit.ini文件中的指令只会被执行一次,列目录时也通常没有它的踪影。这个机制是:将删除或改写这类文件的应用程序按一定的格式把命令Windows病毒在感染文件时,也碰到了这样一个问题,某些文件,因为系统正在使用,不能被改写和感染,早期的Windows病毒如CIH病毒采用VxD技术来解决这个问题,这易造成系统不稳定,后期的病毒大多采用Windows提供的标准方法——Wininit.ini文件来解决这个问题。如下几种新出现的Windows病毒即使用了这种方法。Windows病毒在感染文件时,也碰到了这样一个问题,某些文(1)Win32.Kriz“Win32.Kriz”病毒又叫“圣诞节”病毒,内存驻留型,具有多形性且极端危险,在12月25日发作时将改写CMOS,覆盖所有驱动器上的所有文件,然后用CIH病毒中的同样程序破坏主板上FlashBIOS,该病毒感染exe(PE格式)和scr文件,同时为了监控所有文件操作,它感染Kernel32.dll,接管文件复制、打开、移动等文件存取函数,由于kernel32.dll文件在Windows运行时只能以只读方式打开,为感染它,该病毒将它复制一份,名为Krizeo.tt6,然后感染复制品Krizeo.tt6,写Rename指令到Wininit.ini文件中,下次机器启动时,Krizeo.tt6将替代原来的Kernel32.dll完成感染。(1)Win32.Kriz(2)Supp1.A蠕虫“Supp1.A”是一个Word宏蠕虫,通过在发出的E-mail中插入一个特洛伊文档作为附件传播。当被打开时病毒复制文档到Anthrax.ini,把要展开的数据写到文件dll.lzh,并解压为dll.tmp,以上文件都放在Windows目录下。接下来这个蠕虫创建一个具有如下内容的Wininit.ini文件。[rename]nul=c:windowsdll.lzhc:windowssystemwsock33.dll=c:windowssystemwsock32.dllc:windowssystemwsock32.dll=c:windowsdll.tmp(2)Supp1.A蠕虫(3)Heathen病毒“Heathen病毒”是一个多平台病毒,感染Word文档和PE格式的exe文件。为了感染explorer.exe,病毒先把explorer.exe复制为heathen.vex,然后加一条“rename”指令到Wininit.ini文件,例如:[rename]c:windowsexplorer.exe=c:windowsheathen.vex下次启动时,Windows将帮助它完成对Explorer.exe的感染。另外,该病毒发作时也使Wininit.ini来删除Windows注册表文件:[rename]nul=c:windowssystem.datnul=c:windowsuser.dat(3)Heathen病毒(4)Win95.SK“Win95.SK”是最凶狠、最狡猾的病毒之一,原有一些BUG,现在已出现了更新版本,纠正了第一个版本中的所有BUG。它是一个寄生性的Windows病毒,可感染WindowsPE格式文件、HLPE帮助文件、压缩包文件(rar、xip、arj、ha)。它采用了许多新的高级技术,如:自身加密解密技术,入口点隐藏技术等,当磁盘上文件被访问时,它检查其文件名,如果是几个反病毒程序的名字(DINF、AVPI、AVP、VBA、DRWEB),该病毒将删除从C:盘到Z:盘的所有目录下的所有能被删除的文件,然后,调用函数Fatal_Error_Handler使系统死机。(4)Win95.SKWindowsShell文件explorer.exe是Windows病毒必争之地,该病毒自然不会放过,但比其他病毒更加完善,它通过从system.ini文件中的“Shell=”行来获得Shell文件名,这样,即使将explorer.exe改名,在Shell中指定实际的文件名,期望借此避免被感染,也是徒劳,它感染Shell文件的具体步骤是:以explorer.exe为例,把explorer.exe复制为explorer.exf,然后感染explorer.exf、再创建Wininit.ini文件,写入合适的rename指令,这与其他病毒的作法相同。WindowsShell文件explorer.exe是Wi2.利用PE文件结构在Windows9x/NT/2000下,所有的可执行文件都是基于Microsoft设计的一种新的文件格式PortableExecutableFileFormat(可移植的执行体),即PE格式。有些病毒程序采用同DOS文件型病毒相似的方法攻击PE格式的文件,对PE格式的文件进行修改,使病毒体侵入和隐藏在该类文件中。2.利用PE文件结构(1)PE文件框架构成PE文件结构的总体层次分布如图7.1所示。装载一个PE文件主要经过下列4步:①PE文件被执行,PE装载器检查DOSMZheader里的PEheader偏移量。如果找到,则跳转到PEheader。②PE装载器检查PEheader的有效性。如果有效,就跳转到PEheader的尾部。③紧跟PEheader的是节表。PE装载器读取其中的节信息,并采用文件映射方法将这些节映射到内存,同时附上节表里指定的节属性。(1)PE文件框架构成图7.1PE文件结构总体层次DOSMZheaderDOSstubPEheaderSectiontableSection1Section2Section…Sectionn图7.1PE文件结构总体层次DOSMZheaderDO④PE文件映射入内存后,PE装载器将处理PE文件中类似importtable(引入表)逻辑部分。(2)病毒程序编制技术针对PE型文件结构,病毒程序常用的方法是:①确定病毒程序的位置,可以通过如下代码完成:callGetVirAddrGetVirAddr:popebp使得ebp指向GetVirAddr。要想把变量Var1送入eax,使用如下代码:moveax,[ebp+Var1-GetVirAddr]④PE文件映射入内存后,PE装载器将处理PE文件中类似i②获取Kernel32的API。通用的技术是从4GB的地址空间中搜索Kernel32的基地址,然后从Kernel32的exporttable中找到所需要的API的地址。把API地址存在一个数组里,然后可以用下面方法调用。pushlargeparam_n...pushlargeparam_1call[ebp+Func-GetVirAddr]②获取Kernel32的API。通用的技术是从4GB的地址③分配一块内存(VirtualAlloc),把自己复制进去,用CreateThread在那里启动一个线程,然后返回。这可以通过如下代码完成:pushlargehostentry;herewillbefilledwheninfectingretn或者moveax,hostentry ;hostentry存放的是感染时原程序的entrypointjmpeax③分配一块内存(VirtualAlloc),把自己复制进去④进行病毒感染。利用FindFirstFile、FindNextFile、FindClose这3个API对硬盘文件反复搜索,找到一个可感染文件就感染一个,直到全部可感染文件感染完。采用这种方式编制的病毒如PurpleMood(紫色心情)。该病毒感染长度6736字节,感染本地硬盘和网络上所有exe(GUI)文件,且搜索本地所有邮件地址,将病毒作为附件发送出去,在Explorer进程中加入线程监控程序的运行。④进行病毒感染。利用FindFirstFile、FindN该病毒程序首先得到重定位信息,并将其保存在ebx中;然后调用GetKBase,获得Kernel32.dll的基地址,通过调用GetAPIz,得到程序将使用的Kernel32中所有API;再调用PayLoad判断是否满足发作条件,若满足条件,则删除所有文件,否则继续;接下来,判断是被感染文件还是自身(病毒在系统目录创建PurpleMood.scr):若是染毒文件,则调用CreatePE来创建PurpleMood.scr,初始化(rtInit)写注册表项所需函数地址,调用MakeSCRAlive使PurpleMood.scr保持活动;如果是PurpleMood.scr,则CreateMutex设置标志,然后启动监控线程,感染PE线程,在主线程中发送邮件。该病毒程序首先得到重定位信息,并将其保存在ebx中;然后调用3.利用注册表技术注册表是一个庞大的数据库,用来存储计算机软硬件的各种配置数据。注册表中记录了用户安装在计算机上的软件和每个程序的相关信息,用户可以通过注册表调整软件的运行性能、检测和恢复系统错误、定制桌面等。因而掌握了注册表,即掌握了对计算机配置的控制权。因此,病毒程序可以通过修改、掌握注册表,来达到控制计算机的目的。这类方法常用的有修改注册表的键值、锁定注册表等。3.利用注册表技术4.虚拟设备驱动程序(VxD)VxD是一个管理如硬件设备或者已安装软件等系统资源的32位可执行程序,使得几个应用程序可以同时使用这些资源。Windows通过使用VxD允许基于Windows的应用程序实现多任务。VxD在与Windows的连接工作中处理中断,并为需要进行I/O操作的应用程序执行I/O操作,而且不影响其他应用程序的执行。大多数VxD管理硬件设备,也有一些VxD管理或代替与之相关的软件,例如普通ROMBIOS。4.虚拟设备驱动程序(VxD)VxD可以包含必须在相应设备上执行的设备相关代码,也可以依靠其他软件去执行这些对设备的操作。任何情况下,VxD都会为每一个应用程序保留该设备状态的记录,保证无论何时一个应用程序继续执行该设备均处于正确状态。一些VxD仅仅管理已安装软件,例如MS-DOS设备驱动程序或者TSR程序,这样的VxD通常包含仿真这些软件或者保护这些软件用于正在运行的应用程序的数据的代码。VxD有时还用于提高已安装软件的性能,Intel兼容CPU执行32位的VxD比执行16位的MS-DOS设备驱动程序或者TSR程序有更高的效率。VxD可以包含必须在相应设备上执行的设备相关代码,也可以依靠其实,VxD不仅仅可以用来控制硬件设备,因为VxD工作在80386保护模式Ring0特权级(最高特权级)上,而一般的应用程序工作在Ring3特权级(最低特权级)上,所以VxD可以完成许多API不能完成的功能,例如端口读写、物理内存读写、中断调用、API拦截等。因此,在Windows系统的病毒编制技术中,通过编制一个VxD病毒程序或编制一小段病毒程序代码来来激活一个动态VxD,使得系统瘫痪,也是常见方法之一。由于Windows系统对VxD的行为没有限制,因此VxD病毒可以绕过所采用的任何保机制,所以此种病毒相当恶毒。其实,VxD不仅仅可以用来控制硬件设备,因为VxD工作在80此类典型病毒即为CIH病毒。该病毒使用面向Windows的VxD技术编制,主要感染Windows操作系统下的可执行文件(exe、com、vxd、vxe),并且在DOS、Windows3.2及WindowsNT中无效,感染后的文件大小根本没有变化,病毒代码的大小在1KB左右。由于CIH病毒独特地使用了VxD技术,使得这种病毒在Windows环境下传播,使用一般反病毒软件很难发现这种病毒在系统中的传播。CIH病毒程序部分代码如下:此类典型病毒即为CIH病毒。该病毒使用面向Windows的V…leaeax,(LastVxDCallAddress-2-@9)[esi];上一个调用VxD的指令的地址movcl,VxDCallTableSize ;所用VxD调用的个数LoopOfRestoreVxDCallID:movwordptr[eax],20cdh ;还原成″int20h″的形式movedx,(VxDCallIDTable+(ecx-1)*04h-@9)[esi] ;从VxDCallIDTable取出VxD调用的id号放到edxmov[eax+2],edx ;放到″int20h″的后面,形成′int20h′andthe′ServiceIdentifier′的形式…movzxedx,byteptr(VxDCallAddressTable+ecx1@9)[esi];VxDCallAddressTable中放着各个调用VxD的指令的地址之差subeax,edx ;eax为上一个调用地址loopLoopOfRestoreVxDCallID ;还原其他的调用…WriteVirusCodeToFile:moveax,dr1 ;dr1为前面所保存的espmovebx,[eax+10h] ;ebx为保存在栈中的保存文件句柄movedi,[eax];edi为保存在栈中的IFSMgr_Ring0_FileIO调用的地址…movzxedx,byteptr(VxDCallAdLoopOfWriteVirusCodeToFile:popecx ;病毒代码各段的偏移jecxzSetFileModificationMark ;到病毒偏移零为止movesi,ecxmoveax,0d601h ;写文件功能号(R0_WRITEFILE)popedx ;文件指针popecx ;要写的字节数calledi;VxDCallIFSMgr_Ring0_FileIO;写文件,依次写入:各段病毒代码,病毒块表,新的文件块表,新的程序入口,感染标志jmpLoopOfWriteVirusCodeToFile…LoopOfWriteVirusCodeToFile:在CIH病毒代码中,全部系统调用都是采用VxD调用,这种方法编制的病毒代码与其他方法编制的病毒代码比较而言,病毒代码更加底层,效率更高。特别是和用API函数编制的病毒相比不需考虑病毒自身的复杂重定位过程,和使用中断编制的病毒相比更能防止对程序的跟踪分析。CIH病毒分为驻留、感染、发作3个主要模块。病毒感染时查找感染对象文件的各块之间的空白区域,把病毒自己的各种数据结构和代码写到其中。在CIH病毒代码中,全部系统调用都是采用VxD调用,这种方法病毒的有关操作需要0级的权限,所以病毒一开始就设法获得0级权限,监测驻留情况,用VxD调用分配内存,并完成驻留。随后病毒安装文件系统钩子程序(指向感染模块),并保存原来的钩子指针,钩子程序将在所有的文件操作中被激活,它判断是否在打开文件,如是就打开并传染之。病毒发作时,该模块会覆盖硬盘中的绝大多数数据和FlashBIOS中的数据。只要计算机的微处理器是PentiumIntel430TX,一旦FlashBIOS被覆盖掉,那么机器将不能启动,只有将FlashBIOS进行重写之后才行。病毒的有关操作需要0级的权限,所以病毒一开始就设法获得0级权5.其他编制技术在Windows病毒编制技术中,除了上述几种典型技术外,还有另外一些方法也较常用,例如,有的病毒程序对程序错误进行屏蔽,使得错误程序继续执行,从而引起系统损坏。还有的病毒程序是对系统进程进行控制,通过注册远程线程的方法,使得系统进程无限循环,进程堆积,机器效率逐渐变低,最后使得系统瘫痪。对于邮件型病毒,可以通过提取Windows地址簿文件(*.wab)的E-mail信息,不断发送邮件,造成系统灾难。5.其他编制技术1.“红色代码Ⅱ”病毒“红色代码Ⅱ”是一种专门攻击WindowsNT4.0以及Windows2000系统的恶性网络蠕虫VirtualRoot(虚拟目录)病毒。该病毒利用微软IndexServer(ida/idq)ISAPI扩展远程溢出漏洞,通过80端口发送一个构造后的HTTPGET请求到服务器,当本地IIS服务程序收到某个来自CodeRedII发的请求数据包时,由于存在漏洞,导致处理函数的堆栈溢出(Overflow)。当函数返回时,原返回地址已被病毒数据包覆盖,系统强迫运行病毒代码,此时病毒被激活,并运行在IIS服务程序的堆栈中。7.2.4典型Windows病毒分析1.“红色代码Ⅱ”病毒7.2.4典型Windows病毒这种蠕虫病毒修改Windows注册表并放置特洛伊木马程序(将cmd.exe改名为boot.exe),并将cmd.exe文件复制到别的目录,这些目录包括,c:\inetpub\scripts\root.exe;d:\inetpub\scripts\root.exe;c:\programfiles\commonfiles\system\msadc\root.exe;d:\programfiles\common

files\system\msadc\root.exe.

显然原来的cmd.exe的文件被从WindowsNT的System目录复制到了别的目录,给黑客的入侵敞开了大门。不仅如此,该网络蠕虫程序还会修改系统的注册表项目:这种蠕虫病毒修改Windows注册表并放置特洛伊木马程序(将HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\SERVICES\W3SVC\PARAMETERS\VIRTUALROOTS通过该项目的修改,该蠕虫程序可以建立虚拟的目录C或者D,病毒名由此而来。受感染的机器可由黑客们通过HTTPGET的请求运行scripts/root.exe来获得对受感染机器的完全的控制权。该网络蠕虫的主线程检查2个不同的标记:第一个标记是29A(29A是国外最著名的病毒编写组织的代号),该标记控制该网络蠕虫程序的安装;第二个标记是检查是否有“CodeRedII”,如果存在的话,该网络蠕虫程序进入无限的休眠状态。HKEY_LOCAL_MACHINE\SYSTEM\CURR病毒激活时,网络蠕虫程序会检查当前的系统的语言,如果默认的语言是汉字系统,不管是简体的还是繁体的汉字系统,它会建立600个新的线程;如果不是这两种系统语言的话,该网络蠕虫程序建立300个线程。每一个线程产生一组随机的IP地址,并寻找其中可以感染的目标机器。这些线程不断感染别的机器,当感染一台服务器成功了以后,如果受感染的机器是中文系统,该程序会休眠2天,别的机器休眠1天。当休眠的时间到了以后,该蠕虫程序会使得机器重新启动。同时该蠕虫也会检查机器的月份是否是10月或者年份是否是2002年,如果是的话,受感染的服务器也会重新启动。病毒激活时,网络蠕虫程序会检查当前的系统的语言,如果默认的语当WindowsNT系统启动时,NT系统会自动搜索C盘根目录下的文件Explorer.exe。受该网络蠕虫程序感染的服务器上的文件explorer.exe,也就是该网络蠕虫程序本身。该文件explorer.exe的大小是8192B,该网络蠕虫程序就是通过该程序来执行的。它同时还会修改系统的注册表项目:HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWSNT\CURRENTVERSION\WINLOGON将其中的数值SFCDisable设置成0xFFFFFF9D,使得系统启动时不检查系统文件的完整性。当WindowsNT系统启动时,NT系统会自动搜索C盘根目2.“ILOVEYOU”病毒“ILOVEYOU”病毒是用vbscript写出来的通过E-mail散布的病毒。打开邮件的附件时,含有病毒的脚本程序运行,该病毒首先将自身复制到下列目录中:$windir/Win32DLL.vbs($windir=c:\windowsonmostwindowssystems)$systemdir/MSKernel32.vbs($systemdir=c:\windows\system)$windir/LOVE-LETTER-FOR-YOU.TXT.vbs2.“ILOVEYOU”病毒然后将这些文件加载到注册表中以便在启动时自动运行。并且改变默认的IE浏览页面,通过该页面可下载一个可执行的代码,下载完毕后再将其加入注册表,并把IE的默认浏览页面再改为about:bland。然后将这些文件加载到注册表中以便在启动时自动运行。并且改变默接下来该病毒扫描硬盘及网络共享硬盘,寻找后缀为vbs、vbe、js、jse、css、wsh、sct、hta、vbs、jpg、jpeg的文件,并将所有这些文件改变成这个病毒,当发现有mp2或者mp3格式的文件时,将自身复制到同样目录下的一个vbsscript中,若找到mIRC时则建立一个小的mIRCscript(可以发送html页面),这样就可以对所有加入所在频道的所有用户发送html并感染对方的IE。当感染了病毒的IE运行时,会将其共享密码及IP地址通过E-mail发送回指定的地址。该病毒修改注册表部分源代码如下:接下来该病毒扫描硬盘及网络共享硬盘,寻找后缀为vbs、vbeSetfso=CreateObject(″Scripting.FileSystemObject″)…Setdirwin=fso.GetSpecialFolder(0)Setdirsystem=fso.GetSpecialFolder(1)Setdirtemp=fso.GetSpecialFolder(2)…Setc=fso.GetFile(WScript.ScriptFullName)c.Copy(dirsystem&″\MSKernel32.vbs″)c.Copy(dirwin&″\Win32DLL.vbs″)c.Copy(dirsystem&″\LOVE-LETTER-FOR-YOU.TXT.vbs″)…Setfso=CreateObject(″ScriptDimnum,downreadregcreate″HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\MSKernel32″,dirsystem&″\MSKernel32.vbs″regcreate″HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\Win3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论