防病毒技术-起死回生的最终选择_第1页
防病毒技术-起死回生的最终选择_第2页
防病毒技术-起死回生的最终选择_第3页
防病毒技术-起死回生的最终选择_第4页
防病毒技术-起死回生的最终选择_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、病毒:是指编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。病毒一般由病毒程序和宿主HOST组成。病毒的特性:可执行性、传染性、非授权性、隐蔽性、潜伏性、可触发性、破坏性、主动性、针对性、衍生性、寄生性、不可预见性、诱惑欺骗性、持久性。根据病毒破坏的能力可划分为:无害型、无危险型、危险型、非常危险型。按照病毒的破坏情况又可分为两类:良性病毒、恶性病毒。按照病毒攻击的操作系统分类:攻击DOS系统的病毒、攻击Windows系统的病毒、攻击UNIX系统的病毒、攻击OS/2系统的病毒、攻击Macintosh系统的病毒、其它操作系统上的病

2、毒。按照病毒攻击的机型分类:攻击微型计算机的病毒、攻击工作站的病毒、攻击小型计算机的病毒、攻击中、大型计算机的病毒。按病毒特有的算法分类:伴随型病毒、蠕虫型病毒、寄生型病毒、练习型病毒、诡秘型病毒、变形病毒。按病毒的链接方式分类:源码型病毒、嵌入型病毒、外壳(shell)型病毒、译码型病毒、操作系统型病毒。按照病毒的传播媒介分类:单机病毒、网络病毒。病毒按寄生对象分为:引导型病毒、文件型病毒、混合型病毒。病毒按是否驻留内存分为:驻留内存型、不驻留内存型。计算机病毒在传播过程中存在两种状态,即静态和动态。静态病毒,是指存在于辅助存储介质中的计算机病毒,一般不能执行病毒的破坏或表现功能,其传播只能

3、通过文件下载(拷贝)实现,因为静态病毒尚未被加载、尚未进入内存,不可能获取系统的执行权限。病毒之所以处于静态,有两种可能:没有用户启动该病毒或运行感染了该病毒的文件;该病毒存在于不可执行它的系统中。当病毒完成初始引导,进入内存后,便处于动态。动态病毒本身处于运行状态,通过截流盗用系统中断等方式监视系统运行状态或窃取系统控制权。病毒的主动传染和破坏作用,都是动态病毒的“杰作”。病毒由静态转变为动态的过程,称为病毒的启动。内存中的动态病毒又有两种状态:可激活态和激活态。当内存中的病毒代码能够被系统的正常运行机制所执行时,动态病毒就处于可激活态(一般而言,动态病毒都是可激活的)。系统正在执行病毒代码

4、时,动态病毒就处于激活态。病毒处于激活态时,不一定进行传染和破坏;但进行传染和破坏时,必然处于激活态。内存中的病毒还有一种较为特殊的状态失活态。一般情况下不会出现这种状态,它的出现一般是由于用户对病毒的干预(用杀毒软件或手工方法)。处于失活态的病毒不可能进行传染或破坏,它与静态病毒的不同仅在于病毒代码在内存中,但得不到执行。计算机病毒的基本环节(完整的传播破坏过程):分发拷贝阶段、潜伏繁殖阶段、破坏表现阶段。计算机病毒的逻辑结构:感染标志、引导模块、感染模块、破坏模块。PE文件PE的意思是可移植、可执行,它是win32可执行文件的标准格式。(并不能在其他操作系统上运行)一般来说,病毒往往先于H

5、OST程序获得控制权。 运行Win32病毒的一般流程示意如下:用户点击或系统自动运行HOST程序;装载HOST程序到内存;通过PE文件中的AddressOfEntryPoint加ImageBase之和,定位第一条语句的位置(程序入口);从第一条语句开始执行(这时执行的其实是病毒代码);病毒主体代码执行完毕,将控制权交给HOST程序原来的入口代码;HOST程序继续执行。PE文件格式DOS MZ文件头后面是DOS插桩程序(DOS Stub),这使得PE文件成为一个合法性的MS-DOS可执行文件。可以通过IMAGE_DOS_HEADER结构来识别一个合法的DOS头,可以通过该结构的e_lfanew(

6、偏移60,32bits)成员来找到PE开始的标志0x50540000(PE00)。病毒通过“MZ”、“PE”这两个标志,初步判断当前程序是否是目标文件PE文件。LONG e_lfanew;/3CH,新EXE头部的文件地址然后是是PE文件头,PE header是IMAGE_NT_HEADERS的简称,即NT映像头(PE文件头),存放PE整个文件信息分布的重要字段,包含了许多PE装载器用到的重要域。(PE装载器将从DOS MZ header中找到PE header的起始偏移量,从而跳过DOS Stub直接定位到真正的文件头PE header)PE文件头结构:IMAGE_NT_HEADERS STR

7、UCT Signature dd ? FileHeader IMAGE_FILE_HEADER OptionalHeader IMAGE_OPTIONAL_HEADER32 IMAGE_NT_HEADERS ENDSPE文件头开始是一个4H字节(32位)的PE文件标志0x50540000即PE00,接着就是PE的映像文件头(14H字节),(IMAGE_FILE_HEADER)包含的信息由该程序运行的平台、有多少个节、文件链接的时间、它是一个EXE文件还是一个动态链接库(dll)或是其他。然后是可选映像头(IMAGE_OPTIONAL_HEADER32),实际上总是存在,包含了关于PE文件的逻辑

8、分布信息、程序加载信息、开始目录、保留堆栈数量、数据段大小等。可选映像头中还有一个非常重要的域数据目录表(IMAGE_DATA_DIRECTORY),表中的每一项都是一个指向某一节的指针。PE文件头下面的就是节表(IMAGE_SECTION_HEADER)和节,节通过节表实现索引,实际上,节的内容才是真正要执行的程序和相关数据。节表是紧挨着NT映像头的一结构数组,其成员的数目由映像文件头中NumberOfSections决定。代码节的属性一般是60000020H,即“可执行”、“可读”和“节中包含代码”;数据节的属性一般是C0000040H,即“可读”、“可写”和“包含已初始化数据” ;病毒在

9、添加新节时,都会将新添加的节的属性设置为可读、可写、可执行。每个节是一块拥有共同属性的数据,比如代码/数据、读/写等,节的划分是基于各组数据的共同属性而不是逻辑概念如果PE文件中的数据/代码拥有相同属性,它们就能被归入同一节中。代码节.text;引入函数节.idata;引出函数节.edata;数据节.data、.bss资源节.rsrc;重定位节相对虚拟地址(RVA)是一个相对于PE文件映射到内存的基地址的偏移量,用在不知道基地址的情况下表示一个内存地址。虚拟地址VA=相对虚拟地址RVA+基地址imagebase。使用RVA时为了减少PE装载器的负担。病毒重定位原因:病毒不可避免也要用到变量(常

10、量),当病毒感染HOST程序后,由于其依附到不同HOST程序中的位置各有不同,病毒随着HOST载入内存后,病毒中的各个变量(常量)在内存中的位置自然也会随着发生变化。VStart :; 病毒起始 call delta; 栈顶压入delta在进程空间的真正/有效地址delta :pop ebp ; delta的真正/有效地址弹入ebp寄存器中sub ebp , offset delta VStart ; 得到VStart的真正/有效地址(得到一个偏移差,变量加上该值进行重定位)lea eax , ebp + offset varX ; eax中存入varX的/有效地址如果病毒程序中有一个变量va

11、r1,那么该变量实际在内存中的地址应该是ebp(offset var1offset delta),即参考量delta在内存中的地址其它变量与参考量之间的距离=其它变量在内存中的真正地址有时候我们也采用(ebpoffset delta)offset var1的形式进行变量var1的重定位。WSH是Windows Scripting Host(Windows脚本宿主)的缩略形式,是一个基于32位Windows平台、并独立于语言的脚本运行环境,是一种批次语言/自动执行工具文件名为WScript.exe(若是在DOS命令提示符下,则为CScript.exe,命令格式:CScript FileName.

12、vbs)WScript.exe使得脚本可以被执行,就象执行批处理一样。脚本病毒具有如下几个特点:编写简单破坏力大、感染力强、传播范围大、病毒源码容易被获取,变种多、欺骗性强、使得病毒生产机实现起来非常容易。VBS脚本病毒如何获得控制权:修改注册表项、通过映射文件执行方式、欺骗用户,让用户自己执行、desktop.ini和folder.htt互相配合。VBS脚本病毒的弱点:绝大部分VBS脚本病毒运行的时候需要用到一个对象:FileSystemObject;VB Script代码是通过WSH来解释执行的;VBS脚本病毒的运行需要其关联程序Wscript.exe的支持;通过网页传播的病毒需要Acti

13、veX的支持;通过Email传播的病毒需要OutlookExpress的自动发送邮件功能支持,但是绝大部分病毒都以Email为主要传播方式。防范措施:禁用文件系统对象FileSystemObject;卸载WSH;删除VBS、VBE、JS、JSE文件后缀名与应用程序的映射;将WScript.exe更改名称或者删除;自定义安全级别,把与“ActiveX控件及插件”有关的一切设为禁用;禁止OutlookExpress的自动收发邮件功能;显示扩展名,避免病毒利用文件扩展名作文章;将系统的网络连接的安全级别设置至少为“中等”;安装、使用杀毒软件。判断感染条件:1:是否PE;2:是否已感染;3:是否有足够

14、的空间;4:winzip自解压文件Mov ebx,eaxAssume ebx:ptr IMAGE_DOS_HEADERMov eax,ebx.e_lfanewTest eax,0fffff000hJnz EndDir ;Header+stub不可能太大,超过4096BMov pe _header_offebp,eaxAdd ebx,eax ;此时ebx指向PE文件头Assume ebx:ptr IMAGE_NT_HEADERSCmpebx.Signature,IMAGE_NT_STGNATURE ;是PE文件?Jnz UnMapCmp word ptrebx+lah,FB; 已感染Jz UnM

15、ap指向第二个节判断是winzip自解压文件,是就不感染Move eax,ebxAdd eax,18h ;PE HEADER(4)+FILEHEADER(14)Movzx esi,ebx FileHeader.SizeOfOptionalHeaderAdd eax,esi ;eax指向第一个节表Assume eax:ptr IMAGE_SECTION_HEADERMov edx,eax.PointerToRawDataAdd edx,ebxSub edx,pe_header_offebpSub edx,4Cmp dword ptredx,0Jnz UnMapAdd eax,28h ;eax指向

16、第二个节表Mov edx,eaxAssume edx:ptr IMAGE_SECTION_HEADERMov eax,edx.PointerToRawDataAdd eax,ebxSub eax,pe_header_offebpAdd eax,12h ;加10h+2h(10h处为”winzip”)Cmp dword ptr eax, piZnJz UnMapPush ebx.OptionalHeader.FileAlignmentPop FileAlignebp乾坤大挪移,将节表移到PE头的最后Mov edi,ebx.OptionalHeader.SizeOfHeadersAdd edi,ebxSub edi,pe_header_offebp ;edi指向文件中的第一个节Dec edi ;edi指向PE头的最后一个字节Mov esi,ebxAdd esi,18hMovzx eax,ebx.Fi

温馨提示

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

评论

0/150

提交评论