论文部分内容阅读
程序混淆是一种保护软件知识产权的重要手段。它将一段代码转化为程序员难以理解的或者难以被其它软件自动识别的程序,从而防止被他人窃取,进而达到软件保护的目的。
当前的混淆策略很多,发展很快,在实际中得到了越来越多的应用。但是,在度量混淆效果时,人们仍然使用1997年提出的方法,这样的评价结果与实际情况往往是有差别的。另一方面,在学者研究理想混淆的存在性问题时,很多人得到了否定的结论。这与混淆在实际中的广泛应用是相矛盾的。为了解决这两个问题我们提出了基于图灵机的混淆评价方法。
本文首先探讨了混淆评价的出发点。过去的评价方法是从保护者的角度出发,寻找混淆前后的两段代码的差别,通过强度、弹性、代价等指标,评价一个混淆方法的得失。我们发现,如果从攻击者的角度出发,利用图灵机的概念,研究攻击者经过怎样的工作难度,才能得到他能理解的程序,这将是评价混淆的新思路。为此,我们提出了明文图灵机的概念,作为混淆后程序的评价参照,并对明文图灵机的各种性质进行了研究。
随后,本文提出了四种范式的基于图灵机的混淆评价模型,并从理论和实际两个方面对其进行了分析。在理论层面,着重研究了这种划分的科学性。经过证明发现,任何混淆方法只能属于这四类混淆中的一类,而且从第一范式到第四范式,攻击者的破解难度是递增的。在实际应用的层面,从图灵机和具体程序两个角度,详细分析了这四类混淆特点,并通过举例的方式,进一步说明了这四类混淆的概念。
经过上述分析之后,本文利用基于图灵机的混淆评价模型划分了当前常见的34种混淆方法和11种理论上有重要意义的混淆模型。这些工作表明,本文提出的混淆评价模型能够有效地弥补现有评价方法的不足,并顺利解释了混淆基本理论与实际应用的矛盾。