论文部分内容阅读
近年来,Android平台由于其开源特性吸引了众多厂商和开发者,已经成为世界上应用最广泛的手机操作系统之一,但也正是如此,Android平台已成为重要的攻击目标。目前Android应用软件面临着逆向分析、恶意代码和广告插件植入等问题,严重损害了开发者和用户的权益,但由于Android系统发布时间较短,相关的软件保护技术还处于起步阶段。本文在研究传统软件保护技术的基础上,对Android应用软件安全进行了较为深入的研究,并提出了一个有效的软件加密策略,结合应用版权保护需求,结合现有技术,实现了一套基于加密保护、完整性校验及签名认证的Android应用保护系统,能够对程序的可认证性、机密性、完整性进行保护。该系统能够有效保护应用程序安全,抵抗逆向工程。本文的主要工作成果如下:1)对Android系统架构及安全模型进行了研究,分析了Android应用所面临的安全威胁,针对Android安全模型对Android应用软件保护上的不足,分析了 Android应用软件在可认证性、机密性和完整性上的需求,并对Android软件主流保护方案进行了探究,分析了各自的优缺点。2)在Android应用程序的保护上,通过对Android java字节码文件Dex结构和加壳技术的研究,指出了其在性能上优化的可能性。并从逆向角度出发,通过对字节码文件关键字段的加密,缩短程序加解密时间,使其更适用于移动平台。并通过直接修改字节码文件,将加密后的文件嵌入到可执行程序中,实现对加密文件的隐藏,提高其安全性。3)针对本地代码SO加壳技术在加载核心程序时需生成临时外部文件的不足,深入了研究本地程序加载机制,实现了一套基于自定义加载器的内存加载方案,该方案能够有效抵抗静态分析,并通过在自定义加载器中加入特定的针对SO的防动态分析模块来增加动态分析的难度。4)最后基于以上软件加壳技术,并结合Android软件在可认证性、机密性、完整性三方面的需求,本文提出了一套完整的Android应用软件保护系统,并对系统的各模块进行了较为完整的实验测试,证明了本系统的有效性。