论文部分内容阅读
当前,移动互联网的发展日新月异,各式各样的智能移动终端逐渐涌入人们的工作与生活中,“低头族”随处可见。而这些终端的操作系统也从早期的Symbian发展到如今的Android、iOS、Windows Phone等,这其中又以Android系统最为引人注目,它占据了目前移动操作系统80%以上的份额,且有不断扩大的趋势。其强势表现也吸引了众多攻击者的目光,Android平台上的盗版软件、病毒木马程序发展迅猛,给开发者的知识产权保护与普通用户信息、财产安全造成了极大的威胁。Android恶意软件的生产与对其的检测与分析都离不开Android软件逆向技术,攻击者也常利用该技术破解Android软件或游戏。鉴于该技术在Android软件安全领域的应用普遍性及重要性,本文对其进行了深入研究。文中首先对Android系统本身进行了介绍,包括系统架构、四大组件及其安全机制。之后对Android软件逆向技术中的静态分析技术和动态调试技术进行了深入研究,给出了静态分析中几种常用的工具,并综合利用相关动态调试工具,以实例的方式阐述了动态调试smali代码与动态调试Android原生程序的方法。其后,基于逆向技术实现了对一款Android应用的破解和注册机构建。在对Android软件“攻防”两端技术进行研究的基础上,本文综合利用加密、反动态调试、反射及动态加载等技术手段,提出了一种以原始APK为对象进行应用加固的方案。文中以流程图的方式描述了方案的设计思路及具体实现过程,给出了所采用的反动态调试和动态加载等技术的实现细节,方案中对现有的反动态调试实现方法和APK动态加载方案进行了改进,对加固中所采用的加密密钥进行了特殊地保护。最后通过可行性实验、反调试有效性实验及对抗逆向分析工具的实际效果验证了本文所提方案的有效性。