论文部分内容阅读
大型游戏软件属于新形势下的创意产业,游戏每年给开发者和运营者带来大量的收入。由于游戏软件的恶意逆向破解形成越来越完善的产业链,这一领域软件面临十分严峻的核心算法和机密信息被逆向泄漏的威胁。越来越多的代码分析、动态调试和运行跟踪等静态和动态方法被广泛应用,加之破解技术和工具随手可得,使得游戏软件处于危机四伏的“白箱环境”。目前,软件保护的方法很多,但是大多数方法并不系统,也缺少理论依据,往往是多种单一的保护形式的累加;由于行业软件的系统化的研究相对缺乏,使得针对游戏软件的系统化防护思路更少。本文选择程序运行安全要求高且形式复杂的大型游戏软件作为研究对象,针对二进制形态下的软件防护,对游戏虚拟执行环境的构建、性能开销以及平衡、防护方法和策略的有效性等方面进行了研究。通过对游戏软件所面临的攻击特征分析,提取软件不同关键代码块的安全防护需求,并结合游戏软件自身的运行特点,讨论了虚拟执行条件下安全防护和性能开销平衡性问题。在对软件白箱攻击技术进行系统分类研究和抽象建模的基础上,为了提高软件保护方法评价的客观性,改善游戏软件保护技术选择的针对性,强化安全模型改进和实际支撑应用的准确性,对游戏软件基于攻击的保护有效性评测进行了相关研究。论文的主要研究工作介绍如下:1、由于传统软件防护的针对性在游戏领域受限,本文从游戏软件的特点出发,构建一套针对游戏软件虚拟执行防护的安全模型,对关键代码混淆、白箱加密和指令伪码变换进行了分析讨论。基于游戏C/S架构,利用远程白箱变换提出新的安全防护思路,构建虚拟执行保护模型VEP,并对模型的安全性进行了理论分析验证。2、为避免动态执行环节多代码段明文存储缺陷,讨论了如何有效的针对MMORPG软件实施代码混淆变换,并对混淆算法进行改进以提高模型的安全性;结合大型游戏软件的架构特征,利用远程白箱加密技术加强了执行时动态防护的复杂性和安全性;通过构造新的虚拟变换指令和分发处理机制,采用多分派和多变换原子Handler函数加强随机变换的安全性,对正向变换中的复杂性和性能进行比较分析,为具体的游戏软件防护提供了一般化的参考方法。3、在分析和完善游戏软件虚拟执行防护模型的基础上,对防护体系的支撑实现进行了研究和探讨,针对游戏软件攻击的攻击形态,分析了虚拟执行保护变换中所引发的性能平衡问题。在技术实现上,通过引入多重调度、安全虚拟执行指令以及模式变形引擎的设计,对虚拟执行环境的安全性进行了改进。利用指令寄存器轮转以及重复指令利用和“哨兵”机制解决动态执行中游戏软件的反调试和防篡改的问题。4、构建了一个基于Petri网并利用“攻击流”针对游戏软件有效性进行评测的攻击模型M-AMMPN,并提出了一种基于该模型分析和推导攻击成本的计算方法。利用攻击者实施攻击的动力来源,确定以攻击成本为指标来评价软件保护的有效性;为了改进和提高评测过程的准确性,通过攻击中的结构感知因子增强攻击效能来提升攻击评测的攻击强度。本文所提出的基于攻击建模的软件保护有效性评估方法为相关领域研究提供了一种新的思路,它能够证明软件保护的有效性,且具备可行性和合理性,对保护方法的选择和判别具有指导意义。5、对VEP建模和攻击测度建模研究的部分理论分别进行了实例化验证。第一:利用软件虚拟执行模型VEP的思想,设计基于VEP模型针对游戏软件虚拟执行的防护平台NISL-VEP;第二:利用基于Petri网的攻击模型M-AMMPN,设计并提供了一套Attack-Petri自动逆向攻击测试平台;全文最后以上述两个平台为依托,对理论模型中的部分关键性问题结合实例化的平台进行了数据分析和验证。本文通过相关实验,对虚拟执行环境由于安全防护可能引发的游戏软件的执行性能问题进行了讨论;通过逆向分析的方法,利用攻击破解对采用虚拟执行变换防护后的游戏软件进行了指标变量的获取和比较。选择不同的大型游戏软件做为实验样本,并横向对比不同保护方法的保护效果,并对防护后软件运行性能进行了评价。通过对给定样本的基于Petri网的逆向攻击实验进行评测,使得本文所给定的攻击模型得到了验证。相关实验数据表明,虚拟执行变换能够有效防止游戏逆向外挂,也能较好地解决游戏软件在运行过程中性能和效能的均衡问题。