论文部分内容阅读
几乎所有的恶意程序样本都被一个可执行的保护包裹,为了静态分析恶意程序样本,必须先移除可执行保护(称之为软件反保护)。而与此正好相反,为了保护软件的核心技术不被逆向工程和未经授权的修改,软件作者需要对自己的软件施加可执行保护,以提高软件应用程序的安全性(称之为软件保护)。于是,软件保护与软件反保护这一对矛盾体由于其固有的同一性与斗争性而相互冲突,相互促进,共同发展。
现有的反保护研究已经解决了对一些保护的自动移除,但它们都只能作用于一个统一的保护架构,即“受保护程序在执行过程中的某一时刻,会恢复到一个完全不受保护的状态”。但是近年来出现了一种被称之为“代码混淆”的新的软件保护技术,它与上述保护架构不同。“虚拟化混淆”是混淆保护技术的一个分支,被称为现代保护中最难以对付的技术。
本文对传统的软件保护技术及原理作了深入介绍;对Windows32位操作系统的结构化异常处理架构以及它在软件保护中的应用作了研究;设计了一款虚拟化混淆保护系统,并结合结构化异常处理与虚拟化混淆技术,提出了一种新颖的、作用于虚拟化混淆保护系统的虚拟指令解释器设计方案。最后,通过分析证明此方案能在原有基础上增加虚拟化混淆被攻击的难度。