需要金币:1000 个金币 | 资料包括:完整论文 | ||
转换比率:金额 X 10=金币数量, 例100元=1000金币 | 论文字数:15377 | ||
折扣与优惠:团购最低可5折优惠 - 了解详情 | 论文格式:Word格式(*.doc) |
摘要:Android系统目前来说是当今移动端智能操作系统的佼佼者,带动了其应用程序的快速发展。但是伴随而来的是对Android平台的大量攻击。更有甚者通过一些反编译工具去盗取他人的劳动成果并以自己的名义发布。有的恶意程序可以盗取用户的个人信息,恶意扣费和广告推广等,产生一些不必要的麻烦。更有甚者可以通过对应用程序进行反向编译获取源代码,然后注入恶意代码后重新发布,一些不知情的用户在下载应用程序后会发生诸多危害。主要原因还是在以下两点:首先应用开发的企业不重视APK(Android Package)的防篡改和反编译保护,导致它容易遭受恶意篡改;其次,在应用的审核上,不完善的机制导致了大量的仿冒产品流入市场。 为了避免APK被恶意篡改或反向编译后打包流入市场,目前主流的做法是对文件进行代码级的混淆,主要目的是增加对代码静态分析的难度,可惜这个方法仅仅是增加了攻击者的时间成本,在技术难度上很难有质的提升,尤其重要的一点是它不能有效地阻止Android应用程序被篡改或者反编译。 这篇论文是在严峻的Android应用安全问提基础上,结合自身的相关知识对Android应用进行基于密码学的加固,从而维护应开发公司和用户的合法权益。在对安全加固技术研究后提出加壳与加密相结合的方案。
关键词:密码学 安卓加密 加壳技术 DexClassLoader动态加载
目录 摘要 Abstract 1. 绪论-1 1.1 作品设计的背景和意义-1 1.2 Android应用当下的安全危机-5 1.3 本文的主要研究内容-5 1.4 本文的组织架构-5 2. Android系统架构和文件结构-7 2.1 Android体系结构-7 2.1.1 Linux内核层-7 2.1.2 系统运行库层-8 2.1.3 应用程序框架层-9 2.1.4 应用程序层-10 2.2 Android应用程序文件结构-10 2.2.1 Dex文件结构-10 2.2.2 APK文件结构-18 2.3 Android安全机制-21 2.4 本章小结-23 3. 加壳程序关键技术研究与实现-24 3.1 需求分析-24 3.2 现有安全加固技术的分析-24 3.2.1 防止应用程序被反向编译-24 3.2.2 防止应用程序被静态调试-25 3.2.3 防止应用程序被重新编译-25 3.3 加壳技术-25 3.4 加密算法-26 3.5 程序设计总体思路-27 3.5.1 加壳过程-27 3.5.2 脱壳过程-27 3.6 程序设计的关键技术-28 3.6.1 修复Dex头文件-28 3.6.2 通过自定义类加载器DexClassLoader动态加载源程序-30 3.7 程序模块实现-30 3.7.1 加壳模块-30 3.7.2 脱壳模块-32 3.8 本章小结-32 4. 程序测试和数据分析-33 4.1 测试标准规范-33 4.2 测试环境-33 4.3 测试用源程序APK-33 4.4 反编译工具-33 4.5 功能完整性测试-34 4.6 测试抵抗静态分析和反向编译测试-35 4.7 加密前后文件大小对比-37 4.8 本章小结-38 5. 全文总结-39 参考文献-40 致谢-41 |