论文部分内容阅读
恶意代码是当前计算机系统安全的主要威胁之一,安全厂商和相关研究机构都很重视研究新的检测方法和技术,以便削弱恶意代码的威胁。由于当前的恶意代码普遍采用混淆技术,使得常规检测方法无法有效地检测恶意代码。反编译逆向分析技术是一种用于理解和分析二进制代码的技术,它通过静态方法理解二进制代码将要执行的动作,对发现可执行程序中的潜在威胁具有较大优势。因此,研究基于反编译的恶意代码检测具有重要意义。本文基于对恶意代码混淆技术的分析与理解,深入研究了反编译技术在恶意代码检测中的应用手段和方法。首先,将恶意代码使用的混淆技术按照反编译的过程分为两类,重点研究了干扰反汇编的垃圾代码插入和子程序异常返回等情况。采用虚拟堆栈、二次解码和控制流间隙扫描等方法,设计并实现了相应的恶意代码反汇编框架及算法。之后,针对恶意程序中使用动态搜索、加载调用库函数等情况,提出了根据汇编指令序列特征和库函数名称存放特点识别库函数调用行为的方法及算法。最后,在恶意行为检测方法上,提出了一种基于子图匹配的恶意代码检测方法,通过将程序的控制流图与恶意行为库中定义的恶意行为进行比较,识别可执行程序中含有的可疑行为,从而判断出程序的恶意程度。本文提出的上述方法、算法和技术已经应用于国家863项目所研发的恶意代码分析与检测原型系统RADUX (Reverse Analysis for Detecting Unsafe eXecutables)的开发过程中。该原型系统已经通过了两家测试机构的测试,并已经投入使用,测试中该系统与多个常用的逆向分析工具、知名的杀毒软件进行了比较,测试和使用结果表明,本文所提出的恶意程序反汇编算法、库函数调用识别方法以及基于控制流图的检测方法,在可行性、有效性和正确性上都得到了良好的验证。第V页