论文部分内容阅读
Android系统由于其开源特性,迅速成为了世界上使用最广泛的移动操作系统之一。但正是由于Android应用市场的快速发展,Android应用也成为了攻击者的重要目标。由于Android系统发布时间较短,且移动平台的软件保护技术尚处于起步阶段,Android应用面临着盗版、恶意篡改等严峻的问题,移动软件开发人员的知识产权受到侵犯的事件屡见不鲜。本文主要针对Android平台的软件保护技术进行了相关研究,在此基础之上,结合windows平台比较成熟的保护策略,实现了一个比较有效的防止逆向攻击的软件保护策略,提高了Android应用的安全性,保护了研发人员的知识产权,避免了用户重要信息的泄露等。本文重点做了下面几个方面的调查与研究:1.分析当前的Android逆向工程技术以及软件保护机制。从逆向者的分析角度出发,了解静态分析以及动态调试的具体流程,从而针对逆向分析的相关步骤来提出保护策略。分析当前Android软件采用的主流保护措施,例如代码混淆、动态加载、完整性验证、签名验证、代码自修改等,对其具体的保护流程进行分析,并指出可能存在的风险。2.在对当前主流保护机制分析的基础之上,结合代码自修改(SMC)技术的特点,指出其优化的可能性。参考PC平台的代码自修改技术,分析SMC在Android平台实现的可行性,并介绍与其相关的技术,例如JNI、NDK等,找到在Android平台实现代码自修改的方式,最终实现了SMC从PC平台向Android平台的移植。3.在Android平台SMC实现的前提下,针对SMC存在的缺点,提出改进之后的二次SMC机制,并在该机制的基础之上,结合Android应用签名验证、完整性验证等保护策略,提出一种基于二次SMC的软件保护策略,并对本策略的保护流程进行详细的介绍。4.针对本文提出的保护策略,首先使用3个测试应用测试了本保护策略的可行性以及完整性,然后又对关键代码的执行时间进行了计算,通过与单次SMC的对比验证本策略的有效性。