论文部分内容阅读
随着工业信息化的不断发展,计算机应用得到普遍推广。软件产业在得到巨大发展过程中也面临着巨大挑战,软件盗版现象频繁出现。由此软件保护和软件安全越来越受到产业界和学术界关注。传统软件保护技术都是基于IA-32指令架构,采用复杂加密算法,容易引起相应软件监测,并影响目标软件正常执行,甚至降低系统性能。GPU通用计算的来临,为软件保护研究带来一扇机会之窗,因为大多数逆向研究者对于GPU的执行环境和指令集架构不熟悉。利用GPU高效并行处理能力,加速复杂密码算法,除此之外,还具有目标软件需要的自由、不被监视的执行空间。本论文在大量调研的基础上,设计了集成整体和按需加密保护技术的CBDE系统(CUDA-assisted Bulk and On Demand Encryption),其中CUDA是基于GPU的软件开发平台。首先阐述了整体加密方案,它是将整个镜像作为一个处理对象,进行整体的加密和解密操作。通过编写一个Loader(文件装载器),将整个exe作为嵌入对象。Loader模拟操作系统装载器,负责装载目标程序,并提供解密支持。因为程序含有CUDA相关代码,无法直接将目标程序和Loader编译为一个内嵌exe的程序,因此设计复制工具EmbedTool,目标exe和Loader编译完成后,将前者嵌入后者。其次设计按需加密方案,相比整体加密,不是一次性对目标软件整体处理,而是在运行过程中控制其解密粒度。本论文以函数为一个粒度,称之为函数级的解密。通过宏处理机制和PE节块支持解决单个函数地址和函数所占内存大小,主要设计包括三个模块,分别是初始化模块,解密处理模块获取函数运行前的解密支持,加密处理模块获取函数结束后的加密支持。此外利用高强度密码学算法AES(高级数据加密标准)支持。最后对经过处理的目标程序进行测试和分析,正确性测试包括整体加密测试,从单线程和多线程两个方面对按需加密方式测试,和该系统两种方案的联合测试,此外还对处理前后的样本进行性能测试和分析,经过GPU加速,性能损耗处于合理范围内。通过目前相关的测试技术和监测技术对系统进行了安全评估,结果表明该设计具备较好的安全性和合理的性能损耗。该系统基于GPU平台提供了一种软件运行时自动进行加密和解密机制,具有安全可靠性强、性能损耗合理、兼容性好等特点,为软件保护提供了一种安全可靠的解决方案。