收藏 分销(赏)

计算机病毒常用技术综述培训课件.ppt

上传人:二*** 文档编号:5456622 上传时间:2024-11-06 格式:PPT 页数:45 大小:322.50KB
下载 相关 举报
计算机病毒常用技术综述培训课件.ppt_第1页
第1页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、计算机病毒常用技术计算机病毒常用技术综述综述主要内容计算机病毒的隐藏技术计算机病毒驻留内存技术计算机病毒的变形技术计算机病毒的反跟踪、反调试、反分析技术第第8 8章章 计算机病毒常用技术综述计算机病毒常用技术综述1计算机病毒常用技术综述8.1.1 引导型病毒的隐藏技术引导病毒的隐藏方法8.1 8.1 计算机病毒的隐藏技术计算机病毒的隐藏技术修改修改INT 13H入口地址入口地址修改修改INT 21H功能功能4BH2计算机病毒常用技术综述8.1.2 文件型病毒的隐藏技术文件型病毒在打开文件的时候将文件的内容恢复到未感染的状态,在关闭文件的时候重新进行感染由于访问文件的方式、方法非常多,所以实现完

2、全的文件型病毒隐藏是一件非常困难的事情。一套较完整的隐藏技术应该改包括对如图所示几个方面的处理8.1 8.1 计算机病毒的隐藏技术计算机病毒的隐藏技术3计算机病毒常用技术综述8.1.3 宏病毒的隐藏技术宏病毒的隐藏技术比较简单在Word、Excel等软件中禁止菜单“文件模板”或者“工具宏”通过宏病毒代码删除菜单项宏病毒用自己的FileTemplates和ToolsMacro宏替代系统缺省的宏也可以采用5.3节中讨论的隐藏技术8.1 8.1 计算机病毒的隐藏技术计算机病毒的隐藏技术4计算机病毒常用技术综述8.1.4 Windows病毒的隐藏技术以系统服务程序方式进行隐藏拦截枚举进程的API函数动

3、态嵌入式隐藏8.1 8.1 计算机病毒的隐藏技术计算机病毒的隐藏技术5计算机病毒常用技术综述8.2.1 加密解密技术与病毒的多态性多态病毒的框架多态病毒是改进了的加密病毒,由变化的解密头和加密的代码组成。多态病毒运行时,先执行的是解密代码,对加密代码解密,然后执行刚解密的代码,也就是实现传播的主体代码8.2 8.2 病毒的加密与多态病毒的加密与多态(变形变形)技术技术6计算机病毒常用技术综述8.2.1 加密解密技术与病毒的多态性;VIRUS_SIZE;VIRUS_SIZE是加密代码的长度,是加密代码的长度,offset EncrptStartoffset EncrptStart是加密代码的起始

4、地址,是加密代码的起始地址,keykey是密钥是密钥;密钥以及这些解密代码都是随机生成的,不同的感染会不一样密钥以及这些解密代码都是随机生成的,不同的感染会不一样 INSTRLEN equ 10 INSTRLEN equ 10;定义宏,执行一条有效指令的同时制造垃圾代码定义宏,执行一条有效指令的同时制造垃圾代码I3 macro code1_2,code3I3 macro code1_2,code3 local s,e local s,e s:code1_2,code3 ;s:code1_2,code3 ;例如:例如:MOV EAX,EBXMOV EAX,EBX e:db INSTRLEN-(e

5、-s)dup(90h);e:db INSTRLEN-(e-s)dup(90h);垃圾代码,类似于后文中将介绍的花指令垃圾代码,类似于后文中将介绍的花指令endmendmI2 macro code1_2I2 macro code1_2 local s,e local s,e s:code1_2 ;s:code1_2 ;例如:例如:INC EDIINC EDI e:db INSTRLEN-(e-s)dup(90h);e:db INSTRLEN-(e-s)dup(90h);垃圾代码,类似于后文中将介绍的花指令垃圾代码,类似于后文中将介绍的花指令endmendmI3 MOV ECX,VIRUS_SIZ

6、EI3 MOV ECX,VIRUS_SIZEI3 MOV EDI,offset EncrptStartI3 MOV EDI,offset EncrptStartDecrptLoop:DecrptLoop:I3 XOR byte ptr EDI,key I3 XOR byte ptr EDI,key I2 INC EDI I2 INC EDI I2 LOOP DecrptLoop I2 LOOP DecrptLoop加密后的病毒代码加密后的病毒代码8.2 8.2 病毒的加密与多态病毒的加密与多态(变形变形)技术技术7计算机病毒常用技术综述8.2.1 加密解密技术与病毒的多态性多态病毒加密与普通加

7、密的差别每条解密指令都不是固定的,上面的固定代码实际上只是一种可能,病毒每次复制自身的时候,这些代码都会随机改变密钥在复制自身时,也要重新生成 宏I3、I2使得每条指令占用10个字节的空间(之所以选择10个字节,是因为几乎所有指令,特别是病毒常用的,都小于10个字节,保证了有剩余空间,又不会造成太大浪费,是一种折衷),在10个字节的剩余空间中插入随机生成的垃圾代码,这些垃圾代码也是随机选择的8.2 8.2 病毒的加密与多态病毒的加密与多态(变形变形)技术技术8计算机病毒常用技术综述8.2.1 加密解密技术与病毒的多态性代 码说 明MOV reg_1,countMOV reg_2,keyMOV

8、reg_3,offset其中,reg_1、reg_2和reg_3是从AX、BX、CX、DX、SI、DI、BP中随机挑选的寄存器,感染不同的文件,解密代码使用随机的寄存器;count是加密数据的长度,key是加密的密钥,offset是加密代码的偏移量,感染的时候,这些数值都是随机生成的,不同的感染都不一样LOOP:xxx byte ptr reg_3,reg_2xxx是XOR、ADD、SUB等不同运算指令的通称,使用什么运算指令是感染的时候随机选择的DEC reg_1Jxx LOOPJxx是ja、jnc等不同条件跳转指令的通称,使用什么跳转指令也是感染的时候随机选择的加密后的病毒代码8.2 8.

9、2 病毒的加密与多态病毒的加密与多态(变形变形)技术技术9计算机病毒常用技术综述8.2.2 使用改变可执行代码技术的多态病毒由于在运行过程中改变机器语言的指令是非常困难的,所以这种技术主要使用在宏病毒中。在运行过程中,病毒可以随机的改变变量名,指令的顺序等,但是不影响病毒所实现的功能一些复杂的引导型病毒也采用了这种技术,在引导区或者分区表中,包含了一小段代码来加载实际的病毒代码,这段代码在运行的过程中是可以改变的由于动态修改机器语言代码的复杂性,完成在文件型病毒中使用动态代码修改技术有相当的难度,但是已发现存在病毒使用了这种技术“厚度”(Ply)病毒在病毒体中随机的移动指令,然后利用跳转(JM

10、P)或者调用(CALL)指令使病毒代码仍然可以实现原来的功能“TMC”病毒没有在运行过程中改变代码,但是在感染的时候,整个代码的分段、偏移量和填充代码的分布都是可以随机变化的8.2 8.2 病毒的加密与多态病毒的加密与多态(变形变形)技术技术10计算机病毒常用技术综述8.2.3 多态性的级别根据病毒使用多态技术的复杂程度,可以将多态病毒划分成以下几个级别:半多态病毒拥有一组解密算法,感染的时候从中随机的选择一种算法进行加密和感染具有不动点的多态病毒有一条或者几条语句是不变的,其他病毒指令都是可变的带有填充物的多态解密代码中包含一些没有实际用途的代码来干扰分析者的视线算法固定的多态解密代码所使用

11、的算法是固定的,但是实现这个算法的指令和指令的次序是可变的8.2 8.2 病毒的加密与多态病毒的加密与多态(变形变形)技术技术11计算机病毒常用技术综述8.2.3 多态性的级别算法可变的多态使用了上述所有的技术,同时解密的算法也是可以部分或者全部改变的完全多态算法多态,同时病毒体可以随机的分布在感染文件的各个位置,但是在运行的时候能够进行拼装,并且可以正常工作对于前面3种多态病毒,使用病毒特征码或者改进后的病毒特征码是可以发现病毒的(所谓改进后的特征码,就是包括一些非比较字节的特征串)对于第4种多态病毒,由于代码的变化是有限的,所以通过增加多种情况的改进后的特征码,应该也可以处理至于第5和第6

12、种多态病毒,依靠传统的特征码技术是完全无能为力的8.2 8.2 病毒的加密与多态病毒的加密与多态(变形变形)技术技术12计算机病毒常用技术综述8.2.3 多态性的级别一个真正意义的多态应该可以创建每次都不同的自解密代码和不同的加密代码一个优秀的多态引擎可以作到:创建不同的解密代码:产生不同的指令,完成相同的功能;这些指令集可以交换位置在真实的解密代码中间创建垃圾指令可移动(可以包含在任意程序中)所有的是机制必须随机进行解密器大小可变尽量快且小解密器越大越复杂,效果越好,但也越慢,必须找到一个平衡点8.2 8.2 病毒的加密与多态病毒的加密与多态(变形变形)技术技术13计算机病毒常用技术综述8.

13、2.4 多态病毒的原理最简单的多态病毒VStart:VStart:I2 call start ;1 I2 call start ;1start:start:I2 pop ebx ;2 I2 pop ebx ;2 I3 sub ebx,offset start ;3 I3 sub ebx,offset start ;3 I3 mov ecx,VEndEncryptStart ;4 I3 mov ecx,VEndEncryptStart ;4 I3 lea edi,offset EncryptStart+ebx;5 I3 lea edi,offset EncryptStart+ebx;5Decry

14、ptLoop:DecryptLoop:I3 xor edi,byte ptr 00h ;6 I3 xor edi,byte ptr 00h ;6 DecryptKey =byte ptr$-1 ;7 DecryptKey =byte ptr$-1 ;7 I3 inc edi ;8 I3 inc edi ;8 I2 loop DecryptLoop ;9 I2 loop DecryptLoop ;9(待续待续)8.2 8.2 病毒的加密与多态病毒的加密与多态(变形变形)技术技术14计算机病毒常用技术综述8.2.4 多态病毒的原理这段代码的工作流程是:获得重定位信息将加密代码的偏移保存在edi中,

15、将加密代码的大小保存在ecx中循环解密每一个字节解密完成后,病毒主体开始执行,进行获得地址、判断发作、感染文件、返回宿主等病毒的常规工作(续续)EncryptStart:EncryptStart:call GetKBase ;call GetKBase ;此后便是获取基地址等常规操作此后便是获取基地址等常规操作 call GetAPIz call GetAPIz call InfectThread call InfectThreadRet2Host:Ret2Host:push HostEntryebx push HostEntryebx ret ret8.2 8.2 病毒的加密与多态病毒的加密

16、与多态(变形变形)技术技术15计算机病毒常用技术综述8.2.4 多态病毒的原理改变指令顺序多态很重要的一个工作就是可以交换解密指令位置,仅这个特性就可以使特征字符串扫描失效上面19可排列的指令具有如下规则:指令13顺序不能改变指令4可以在VStart、DecryptLoop之间的任何地方指令5必须在指令3之后、指令6之前指令69顺序不能改变根据这个原则,可能改变采用的指令序列是:1 2 3 4 5 6 7 8 91 4 2 3 5 6 7 8 91 2 4 3 5 6 7 8 94 1 2 3 5 6 7 8 91 2 3 5 4 6 7 8 98.2 8.2 病毒的加密与多态病毒的加密与多态

17、(变形变形)技术技术16计算机病毒常用技术综述8.2.4 多态病毒的原理改变解密指令把单条指令展开为复杂的指令集把已知的指令集转换为单条指令STOSD MOV EDI,EAXSTOSD MOV EDI,EAX ADD EDI,4 ADD EDI,4MOV EAX,EDX PUSH EDXMOV EAX,EDX PUSH EDX POP EAX POP EAXPOP EAX MOV EAX,ESPPOP EAX MOV EAX,ESP ADD ESP,4 ADD ESP,4MOV EDI,EAXMOV EDI,EAXADD EDI,4ADD EDI,4将以上两行转换为:将以上两行转换为:STOS

18、DSTOSDPUSH EDXPUSH EDXXCHG EAX,EDXXCHG EAX,EDXPOP EDXPOP EDX将以上三行转换为:将以上三行转换为:MOV EAX,EDXMOV EAX,EDX8.2 8.2 病毒的加密与多态病毒的加密与多态(变形变形)技术技术17计算机病毒常用技术综述8.2.4 多态病毒的原理把指令变换为相同功能的指令以上指令都做相同的事情,可以随机选择一个,然后再在空隙中插入垃圾指令来达到每条指令占用的最大空间。下面以mov指令为例,说明变换的过程XOR EXX,EXX SUB EXX,EXXXOR EXX,EXX SUB EXX,EXXADD EXX,1 INC

19、EXXADD EXX,1 INC EXX8.2 8.2 病毒的加密与多态病毒的加密与多态(变形变形)技术技术18计算机病毒常用技术综述8.2.4 多态病毒的原理 push 4 ;push 4 ;可选指令数目可选指令数目 call Random ;call Random ;返回值在返回值在eaxeax中中 call WriteDecryptCode call WriteDecryptCode dd dd offset offset I1,I2-I1,offset I1,I2-I1,offset I2,I3-I2,offset I2,I3-I2,offset I3,I4-I3,offset I3,

20、I4-I3,offset I4,IEnd-I4I4,IEnd-I4I1:mov ebx,1000hI1:mov ebx,1000hI2:push 1000hI2:push 1000h pop ebx pop ebxI3:xor ebx,ebxI3:xor ebx,ebx or ebx,1000h or ebx,1000hI4:sub ebx,ebxI4:sub ebx,ebx xor ebx,1000h xor ebx,1000hIEnd:IEnd:WriteDecryptCode:WriteDecryptCode:pop esi pop esi add esi,eax*8 add esi,e

21、ax*8 mov ecx,esi+4 mov ecx,esi+4 mov esi,esi mov esi,esi rep movsb ;edi rep movsb ;edi已指向一块存放病毒代码的内存已指向一块存放病毒代码的内存8.2 8.2 病毒的加密与多态病毒的加密与多态(变形变形)技术技术19计算机病毒常用技术综述8.2.4 多态病毒的原理随机数的生成多态必须建立在随机过程上,避免有规律可寻Random PROC Seed:DWORD ;Random PROC Seed:DWORD ;返回值在返回值在eaxeax中中 mov eax,12345678h mov eax,12345678h

22、 _GetTickCount =dword ptr$-4 _GetTickCount =dword ptr$-4 call eax call eax xor edx,edx xor edx,edx div Seed div Seed xchg edx,eax ;xchg edx,eax ;需要的是余数,在需要的是余数,在edxedx中中 ret 4 ret 4Random ENDPRandom ENDP8.2 8.2 病毒的加密与多态病毒的加密与多态(变形变形)技术技术20计算机病毒常用技术综述8.2.4 多态病毒的原理垃圾代码的产生选择垃圾代码的原则:不能影响任何寄存器(当然,eip是一定要

23、改变的)和标志位的状态不能修改程序中的任何数据总之,不可以干扰程序的正常运行可以选择的垃圾代码指令单字节垃圾指令双字节垃圾指令三字节垃圾指令8.2 8.2 病毒的加密与多态病毒的加密与多态(变形变形)技术技术21计算机病毒常用技术综述8.2.4 多态病毒的原理多态病毒复制自身时的特殊性普通病毒复制自身只要简单的调用WriteFile(offset VStart,VIRUS_SIZE)多态病毒的复制过程要复杂一些,可以分为3个步骤:生成并写入解密代码每次感染文件的时候,都要变化解密代码,这就要先对解密代码进行一次处理,用相同功能的指令以一定的概率替换原有指令,再以随机的垃圾代码填充空隙后即可写入

24、到宿主文件生成并写入密钥密钥是要每次重新生成的,动态生成一个新的密钥,然后写入写入病毒加密部分这部分也是病毒的主体,不能直接写入,用新密钥加密后写入8.2 8.2 病毒的加密与多态病毒的加密与多态(变形变形)技术技术22计算机病毒常用技术综述8.2.5 多态病毒的对抗对付多态病毒的最好办法是某种形式的虚拟执行技术,也就是仿真出一个80 x86的CPU,让解密代码自己解密完成之后,再使用通常的特征码识别法进行病毒检测针对这种仿真技术也出现了一些具有反仿真技术的病毒例如根据执行所需要的时间判断是否处于虚拟机的监视下,在监视下和非监视下表现出完全不同的行为衡量多态病毒的难度、复杂性和检测的困难程度可

25、以从下面几个方面进行:采用算法的复杂性,是否采用了非公开、非标准的80 x86指令,是否使用了大量的寻址方法和多种类型的指令实现解密算法是否使用了反仿真(反虚拟执行)技术是否采用了可变的加密/解密算法解密代码是否具有充分的随机性8.2 8.2 病毒的加密与多态病毒的加密与多态(变形变形)技术技术23计算机病毒常用技术综述EPO技术简介EPO是Entry Point Obscuring技术的简写,意即入口模糊技术,该技术改变了传统的修改PE头部的入口点、使其指向病毒代码入口而使病毒代码得以执行的典型方法EPO技术的产生,源于计算机病毒对抗很多杀毒软件为了避免耗时太多只是对PE入口处的代码进行启发

26、式检查如果只是简单地修改PE的入口,则很容易被杀毒软件识别如果可以把病毒代码隐藏在PE文件的某个中间的位置,那么要想找出病毒来势必要困难的多8.3 EPO8.3 EPO技术简介技术简介24计算机病毒常用技术综述EPO技术简介最早的EPO并不改变PE头中入口点的值,相反,它改变了程序入口处的代码,比如改成JMP VirStart跳转到病毒体执行另外一种实现EPO的方法是在PE文件代码中的任意指令位置,将其替换成JMP VirStart或CALL或其他转移指令跳转到病毒体去执行EPO存在如下缺陷:搜索任意指令的方法有一定的局限被替换的指令可能是废代码,也就是说在程序执行过程中,几乎永远不会执行到如

27、果因为上面原因,导致病毒设计失败,导致目标程序无法正常执行,病毒几乎无法传播,而且由于杀死了目标程序,不但起不到EPO的作用,反而有可能暴露自己8.3 EPO8.3 EPO技术简介技术简介25计算机病毒常用技术综述8.4.1 核心态与用户态操作系统代码、设备驱动程序代码使用特权级0(Ring 0),工作于系统核心态普通的用户程序使用特权极3(Ring 3),工作在用户态8.4 8.4 病毒进入系统核心态的方法病毒进入系统核心态的方法Windows 2000/XP下下普通应用程序普通应用程序对核心态功能的对核心态功能的调用示意调用示意26计算机病毒常用技术综述8.4.2 病毒进入系统核心态的方法

28、病毒就可以在GDT(全局描述符表)、LDT(局部描述符表)中随意构造门描述符并借此进入核心态通过调用门(Call gate)、中断门(INT gate)、陷阱门(Trap gate)、异常门(Fault)、中断请求(IRQs)、端口(Ports)、虚拟机管理器(VMM)、回调(Callback)、形式转换(Thunks)、设备IO控制(Device IO Control)、API函数(SetThreadContext)、中断2E服务(NTKERN.VxD)得到Ring 08.4 8.4 病毒进入系统核心态的方法病毒进入系统核心态的方法27计算机病毒常用技术综述8.5.1 DOS环境下文件型病毒

29、的内存驻留对于标准的DOS下TSR可以使用两种方法实现驻留通过在CONFIG.SYS中作为设备驱动程序加载调用DOS中断INT 21H的31H 功能或INT 27H病毒不是常规的TSR程序,病毒通常会使用更加巧妙的方法驻留内存8.5 8.5 病毒驻留内存技术病毒驻留内存技术病毒常用的内存隐身之所病毒常用的内存隐身之所28计算机病毒常用技术综述8.5.3 Windows环境下病毒的内存驻留内存分配对于驻留型病毒,分配驻留所需内存是必需的在Win32下,每个应用程序都有自己的线性地址空间,必须使用特殊的函数分配内存内存驻留进入系统核心态的病毒可以利用系统服务来达到驻留内存的目的处于用户态的程序要在

30、程序退出后仍驻留部分代码于内存中,似乎是不可能的,因为无论用户程序分配何种内存都将作为进程占用资源的一部分,一旦进程结束,所占资源将立即被释放关键问题是分配一块进程退出后仍可保持的内存8.5 8.5 病毒驻留内存技术病毒驻留内存技术30计算机病毒常用技术综述8.5.4 宏病毒的内存驻留方法宏病毒是一类特殊的病毒,一旦运行Word/Excel,病毒就会被加载并且一直存在于系统中,所以在某种意义上,宏病毒都是内存驻留病毒。宏病毒通常也会进行重入检测,发现一个文档中已经包含了病毒的特征就不会再对这个文档进行感染,这样可以防止反复感染造成文档不断增大甚至损坏8.5 8.5 病毒驻留内存技术病毒驻留内存

31、技术31计算机病毒常用技术综述8.6.1 DOS病毒截获系统服务的方法在DOS下的所有代码都可被看作运行在核心态文件型病毒可以通过在中断向量表中修改INT 21H的入口地址来截获DOS系统服务(DOS利用INT 21H来提供系统调用,其中包括大量的文件操作)大部分引导区病毒盗取截流BIOS中断INT 13H(提供磁盘操作服务)从而取得对磁盘访问的控制8.6 8.6 计算机病毒截获系统操作的方法计算机病毒截获系统操作的方法32计算机病毒常用技术综述8.6.2 Windows病毒截获系统服务的方法Windows下的应用程序,一般工作在用户态,不可能像在DOS下那样随心所欲地调用系统中断实现特殊功能

32、Windows下的病毒同样找到了钩挂系统服务的办法截留文件I/O操作驻留型的病毒通过截留文件I/O来激活自己,可以通过使用VxD服务IFSMgr_InstallFileSystemAPIHook(如CIH)或截留VxDCall中的DOS Services callback(如HPS)勾挂API函数8.6 8.6 计算机病毒截获系统操作的方法计算机病毒截获系统操作的方法33计算机病毒常用技术综述8.7.1 直接API调用技术直接API调用是当今Win32病毒常用的手段,它指的是病毒在运行时直接定位API函数在内存中的入口地址然后调用该API函数的一种技术病毒为了避免感染一个可执行文件时在文件的导

33、入节中构造病毒体代码中用到的API的链接信息,它选择运用自己在运行时直接定位API函数地址的代码8.7 8.7 计算机病毒直接计算机病毒直接APIAPI调用与异常处理技术调用与异常处理技术34计算机病毒常用技术综述8.7.2 异常处理病毒与众多设计严谨的实用系统一样,也常使用异常处理技术进行隐藏和自我保护,有时还有意制造并捕捉异常,以获取Ring 0结构化异常处理(Structured Exception Handling,SEH)是Windows操作系统提供给程序设计者的强有力的处理程序错误或异常的武器最终(final)异常处理无论进程中哪个线程发生了异常,操作系统都将调用在主线程中调用Se

34、tUnhandledExceptionFilter建立的异常处理函数,退出时,无需人为拆去自行安装的处理代码,系统将自动清除之每线程异常处理异常处理是呈链状的,如果你自己的处理函数捕捉并处理了这个异常,那么当你的程序发生了异常时,操作系统就不会调用它缺省的处理函数,也就不会出现一个讨厌的执行了非法操作的警告8.7 8.7 计算机病毒直接计算机病毒直接APIAPI调用与异常处理技术调用与异常处理技术35计算机病毒常用技术综述8.7.2 异常处理异常处理的过程系统按照调试器、SEH链上从新到旧的各个回调函数的顺序逐个调用,直到存在一个回调函数处理异常为止,如果不存在这样的回调函数,则由系统默认的异

35、常处理程序终止发生异常的程序必须有存在的一个最基本的观念SEH只不过是系统在终结应用程序之前给你的一个最后处理错误的机会,从程序设计的角度来说就是给你自己设计的一个回调函数执行的机会。这也给病毒一个机会:利用异常进入Ring 0,如CIH病毒8.7 8.7 计算机病毒直接计算机病毒直接APIAPI调用与异常处理技术调用与异常处理技术36计算机病毒常用技术综述8.8.1 防调试器技术句柄检测用CreateFileA()或_lopen()函数试图获得SoftICE等调试器的驱动程序的句柄,如果成功,则说明相应的调试器驻留在内存中8.8 8.8 计算机病毒的反调试、反跟踪、反分析技术计算机病毒的反调

36、试、反跟踪、反分析技术if(_lopen(.NTICE,OF_READWRITE)!=HFILE_ERROR)if(_lopen(.NTICE,OF_READWRITE)!=HFILE_ERROR)printf(SoftICE detected!);printf(SoftICE detected!);if(CreateFile(.SICE,if(CreateFile(.SICE,GENERIC_READ,GENERIC_READ,FILE_SHARE_READ,FILE_SHARE_READ,NULL),NULL),OPEN_EXISTING,OPEN_EXISTING,FILE_ATTRIB

37、UTE_ARCHIVE,NULL)!=INVALID_HANDLE_VALUE)FILE_ATTRIBUTE_ARCHIVE,NULL)!=INVALID_HANDLE_VALUE)printf(SoftICE detected!);printf(SoftICE detected!);37计算机病毒常用技术综述8.8.1 防调试器技术利用调试器后门指令或调试器自带的接口函数进行检测如SoftICE的后门指令(Back Door Commands)通过INT 03H来进行DOS时代,用后门指令可以获得SoftICE版本信息、设置断点和执行命令等8.8 8.8 计算机病毒的反调试、反跟踪、反分析技

38、术计算机病毒的反调试、反跟踪、反分析技术38计算机病毒常用技术综述8.8.2 反静态分析技术花指令好的反汇编软件,应该能够正确地区分程序文件中的指令和数据。变形病毒所采用的多态技术及其他技术,均能干扰反汇编,达到反静态分析的目的.data.dataszText db szText db 这是一个花指令程序这是一个花指令程序,0,0szCaption db szCaption db 花指令演示花指令演示,0,0.code.codemain:main:call msg call msg db 12,34h ;db 12,34h ;花指令花指令msg:msg:invoke MessageBox,NU

39、LL,addr szText,addr szCaption,MB_OK invoke MessageBox,NULL,addr szText,addr szCaption,MB_OK invoke ExitProcess,0 invoke ExitProcess,0end mainend main花指令实验花指令实验18.8 8.8 计算机病毒的反调试、反跟踪、反分析技术计算机病毒的反调试、反跟踪、反分析技术39计算机病毒常用技术综述8.8.2 反静态分析技术花指令00401000 start:00401000 start:00401000 E802000000 call 00401000 E

40、802000000 call fn_00401007fn_0040100700401005 0C34 00401005 0C34 or al,34hor al,34h00401007 00401007 fn_00401007fn_00401007:00401007 6A00 push 000401007 6A00 push 000401009 6817304000 push 403017h00401009 6817304000 push 403017h0040100E 6800304000 push 403000h0040100E 6800304000 push 403000h00401013

41、 6A00 push 000401013 6A00 push 000401015 E80E000000 call 00401015 E80E000000 call fn_00401028fn_004010280040101A 6A00 push 00040101A 6A00 push 00040101C E801000000 call 0040101C E801000000 call fn_00401022fn_0040102200401021 CC int 300401021 CC int 300401022 00401022 fn_00401022fn_00401022:00401022

42、FF2500204000 jmp dword ptr ExitProcess00401022 FF2500204000 jmp dword ptr ExitProcess00401028 00401028 fn_00401028fn_00401028:00401028 FF2508204000 jmp dword ptr MessageBoxA00401028 FF2508204000 jmp dword ptr MessageBoxA反汇编反汇编部分结果部分结果8.8 8.8 计算机病毒的反调试、反跟踪、反分析技术计算机病毒的反调试、反跟踪、反分析技术40计算机病毒常用技术综述8.8.2 反

43、静态分析技术花指令花指令实验2.data.dataszText db szText db 这是一个花指令程序这是一个花指令程序,0,0szCaption db szCaption db 花指令演示花指令演示,0,0.code.codemain:main:call msg call msg db 09ah ;db 09ah ;花指令花指令 db 0e8h ;db 0e8h ;花指令花指令msg:msg:invoke MessageBox,NULL,addr szText,addr szCaption,MB_OK invoke MessageBox,NULL,addr szText,addr sz

44、Caption,MB_OK invoke ExitProcess,0 invoke ExitProcess,0end mainend main8.8 8.8 计算机病毒的反调试、反跟踪、反分析技术计算机病毒的反调试、反跟踪、反分析技术41计算机病毒常用技术综述8.8.2 反静态分析技术花指令反汇编部分结果00401000 start:00401000 start:00401000 E802000000 call fn_0040100700401000 E802000000 call fn_0040100700401005 9AE86A00681730 call fn_0000301700401

45、005 9AE86A00681730 call fn_000030170040100C 40 inc eax0040100C 40 inc eax0040100D 006800 add eax,ch0040100D 006800 add eax,ch00401010 304000 xor eax,al00401010 304000 xor eax,al00401013 6A00 push 000401013 6A00 push 000401015 E80E000000 call fn_0040102800401015 E80E000000 call fn_004010280040101A 6A

46、00 push 00040101A 6A00 push 00040101C E801000000 call fn_004010220040101C E801000000 call fn_0040102200401021 CC int 300401021 CC int 300401022 fn_00401022:00401022 fn_00401022:00401022 FF2500204000 jmp dword ptr ExitProcess00401022 FF2500204000 jmp dword ptr ExitProcess00401028 fn_00401028:00401028

47、 fn_00401028:00401028 FF2508204000 jmp dword ptr MessageBoxA00401028 FF2508204000 jmp dword ptr MessageBoxA8.8 8.8 计算机病毒的反调试、反跟踪、反分析技术计算机病毒的反调试、反跟踪、反分析技术42计算机病毒常用技术综述8.8.3 其它技术反跟踪、反调试的其他技术指令动态执行加密技术反虚拟机技术用时间差反跟踪用指令预取技术反跟踪8.8 8.8 计算机病毒的反调试、反跟踪、反分析技术计算机病毒的反调试、反跟踪、反分析技术43计算机病毒常用技术综述超级病毒技术超级病毒技术是一种很先进的病毒技术,其主要目的是对抗计算机病毒的预防技术超级病毒技术就是在计算机病毒进行感染、破坏时,使得病毒预防工具无法获得运行机会的病毒技术8.9 8.9 超级病毒技术超级病毒技术44计算机病毒常用技术综述

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 通信科技 > 计算机应用

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服