论文部分内容阅读
在科学技术飞速发展的今天,计算机给人们的生产和生活带来了极大的便利,随着人们对计算机依赖越来越大,计算机软件的安全问题也越来越引起人们的重视。计算机软件面临着盗版、攻击等一系列威胁,因此如何有效的保护计算机软件成为一项重要的研究课题。当前软件保护的手段有基于硬件的保护、加密保护及代码混淆等。本文简要分析了各种保护手段,由于代码混淆能够对软件提供较好的保护且代价较低,所以本文选择了代码混淆作为软件保护的研究重点。代码混淆是在语义保持不变的情况下对程序进行变换,使程序更难被理解和分析,以达到有效阻止逆向工程的目的。代码混淆是上世纪90年代提出的一种软件保护技术,近年来其发展及应用已经成为软件保护领域研究的热点。本文以二进制程序软件的保护为研究目的,重点针对二进制代码混淆的算法进行研究,分析了二进制代码混淆算法实现的关键技术。本文的主要工作包括:第一、代码混淆算法的研究。作为研究的理论基础,本文首先通过总结二进制程序的分析技术,了解了针对二进制程序的攻击方法;接着详细分析了代码混淆的概念、分类方法以及评估方法,从多种分类方法及混淆算法来了解代码混淆的研究角度和研究现状;最后本文针对二进制程序的代码混淆,总结了自己的元素转换分类方法,为研究者构造新的混淆算法提供思路,本文基于此分类方法,提出了基于代码-数据欺骗和基于操作码变换2种新的代码混淆算法,并详细描述了算法的思想和步骤。第二、代码混淆算法实现的关键技术研究及实验。本文详细研究了二进制代码混淆算法实现的关键技术,阐述了代码混淆的总体框架,并详细分析了各个模块的技术细节,文中还对提出的2种混淆算法在实现过程中的具体情况进行了分析;接着设计实现了代码混淆的实验,通过实验展示了混淆算法的混淆效果,并分析了混淆算法对执行效率的影响,根据实验结果对2种混淆算法进行比较并分析算法适用的范围;最后讨论了代码混淆在实践过程中的一些问题,作为未来工作的研究方向。