欢迎来到天天文库
浏览记录
ID:24567901
大小:51.50 KB
页数:4页
时间:2018-11-15
《恶意软件反检测技术简介(上)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、恶意软件反检测技术简介(上)~教育资源库 恶意软件是一种招人恨的代码,因为它们专干坏事,如泄漏个人隐私、造成数据丢失,等等。而杀毒软件公司则不断想办法检测并阻止恶意软件。如此一来,猫和老鼠的大戏从此开演了。一般来说,杀毒软件要想防御某种恶意软件需要经过以下过程:收集到样本,分析样本,升级病毒库,之后杀毒软件才能够识别该恶意软件。而反检测技术,就是在恶意软件的分析阶段设置障碍,让分析人员无法或难以对恶意代码进行分析,这主要包括两类技术,一种是反调试技术,一种是反仿真技术,或叫做反虚拟执行技术。 无论是处于分析恶意软件的目的,还是防止软件被分析的目的,了解恶意软件常用的
2、反检测手段都是很有必要的,而本文的目的就是在于,向读者们介绍目前的反调试和反仿真技术,并提供代码样本,以供读者在识别恶意代码时作为练手之用。 一、引言 病毒使用反调试与反仿真技术的目的在于为逆向分析恶意软件制造障碍,理想的情况下是使得逆向工程师无法分析恶意软件,退一步讲即使可以分析也会让分析过程更为缓慢。当病毒在一个仿真器或调试器中运行时,这些技术会使逆向工程过程变得举步维艰,他们企图以此逃避检查。恶意代码可以利用多种不同的方法来忽悠动态检测和其他如仿真器和调试器之类的分析机制,通常情况下每种病毒都会采用其中的一种甚至多种。 对于这些病毒用于使对病毒的逆向过程变缓
3、的方法,本文将分别进行讲解,并为它们提供了示例。本文会概述各种反调试与反仿真技术,以使得读者对它们有所了解。下面我们开始介绍反仿真技术。 二、反仿真技术 仿真器为人们提供了一个受限制的环境(即安装在主机操作系统之上的操作系统的映像),我们可以在这个环境中动态地分析程序。例如,一台运行Linux操作系统的机器可以在其虚拟机上安装并运行ovedi,esi movecx,[ebp+host_size] incebxdecrypt: lodsb xoral,bl stosb loopdecryptcheck: movesi,[ebp+hostOf
4、fset] pushesi movecx,[ebp+host_size] pushecx moveax,[ebp+__ADDR_CheckSum] ;whateverthishappenstobe cal12下一页友情提醒:,特别!leax testeax,eax jnziterate movesi,[ebp+hostOffset] jmpesi 在上面的例子中,我们看到setup段将ebx设为0,并且它只运行一次。然后,在循环部分将esi和edi设为被加密的代码的起点,将ecx设为被加密的代码的尺寸,ebx每次递增1。用于解密的基
5、本块会逐字节遍历被加密的代码,并用ebx中的密钥来异或每一字节。当ecx变成零时,循环终止。之后,由负责检查的代码段来查看当前的代码是否跟预设的校验和是否匹配,如果匹配的话,那么说明代码已经成功解密。如果不匹配,则返回迭代循环并再次尝试下一个密码。如果已经解密,那么它会跳转到新解密代码处。 MX指令。这个指令集为X86架构新增了了8个寄存器。恶意软件可以通过CPUID指令检查是否支持MMX。使用这种技术恶意软件的例子是W32/Legacy和W32/Thorin。 恶意软件还可以设置一个异常处理程序,执行一些无用的代码块,然后间接执行自己的处理程序,以将控制权传送到多
6、态解密器的另一部分。这一诡计之所以得逞,是因为仿真器不能处理异常。3.7部分给出了类似于这种技术的例子。 六、小结 本文中,我们介绍了恶意软件用以阻碍对其进行逆向工程的若干技术,并着重讲解了当前恶意软件常用的反仿真技术。我们应该很好的理解这些技术,以便能够更有效地对恶意软件进行动态检测和分析。在下篇中,我们会为读者介绍恶意软件常用来的反调试技术。上一页12友情提醒:,特别!
此文档下载收益归作者所有