首页> 中文学位 >基于bytecode混淆的Android应用保护方法研究与实现
【6h】

基于bytecode混淆的Android应用保护方法研究与实现

代理获取

目录

声明

摘要

第一章 绪论

1.1 研究背景与意义

1.2 国内外研究现状

1.3 本文主要研究内容

1.4 本文组织结构

第二章 Android操作系统及其安全机制分析

2.1 Android应用程序结构和运行时环境

2.1.1 Android应用程序结构

2.1.2 Dalvik虚拟机运行时环境

2.1.3 ART虚拟机可执行文件结构

2.2 软件逆向攻击

2.2.1 逆向工程简介

2.2.2 常用逆向工具

2.2.3 反编译介绍

2.2.4 逆向攻击过程

2.3 代码混淆保护

2.3.1 代码混淆

2.3.2 评价标准

2.4 本章总结

第三章 基于bytecode混淆的Android应用保护方法

3.1 混淆方法概述

3.2 控制流平展

3.2.1 压扁控制流技术介绍

3.2.2 条件基本块分析以及混淆操作

3.3 分支路径混淆

3.4 数据流混淆

3.4.1 常量存储方式混淆

3.4.2 子函数返回值混淆

3.5 寄存器类型冲突及其解决

3.5.1 冲突问题产生的原因

3.5.2 指令集存储与修改

3.5.3 动态加载

3.5.4 代码自篡改技术

3.6 本章总结

第四章 原型系统的设计与实现

4.1 系统模块设计

4.2 关键数据结构

4.3 关键算法设计

4.3.1 常量存储方式混淆算法

4.3.2 函数调用返回值获取方式混淆算法

4.3.3 解决寄存器冲突问题算法

4.3.4 控制流平展化算法

4.4 本章小结

第五章 系统实验与分析

5.1 实验环境及目的

5.2 混淆技术评价

5.3 安全性分析

5.4 性能分析

5.5 本章小结

总结与展望

总结

展望

参考文献

致谢

攻读硕士学位期间取得的科研成果

展开▼

摘要

随着智能手机的发展,全球Android应用程序的年下载量超过3000亿次。然而,在应用爆发式增加的同时,其自身所遭受大量的二次打包、代码注入等非法攻击也越来越多。因此,研究一种有效的保护方法势在必行,众所周知代码混淆是最有效的保护方法之一。
  已有的Android应用代码混淆保护方法分为两大类:一种是基于Java源码进行混淆处理,但是这种方法不能保护开发商的知识产权;另外一种是基于Android bytecode指令的混淆,这种方法并没有提供复杂的数据流混淆和控制流混淆相结合的技术。本文提出一种基于bytecode混淆的Android应用保护方法,该方法不仅不需要提供应用程序源代码和修改虚拟机解释器,而且还增加了逆向工具进行逆向分析时的难度。
  本文主要研究工作包括四个方面:
  1)针对近年来出现的大量逆向工具能够辅助攻击者非法获取应用程序关键代码的问题,提出了混淆代码中变量的存储方式和函数调用的返回值获取方式的数据流混淆方法,经过该方法加固后的应用程序是不易被逆向的。
  2)为了进一步增加逆向工程的难度,本文还结合了控制流平展技术和路径模糊技术来增加应用程序的控制流复杂度。
  3)本文详细的分析解释了Android运行时系统对于bytecode运行之前的静态分析检测原理,根据这个检测机制的漏洞解决了这个寄存器类型冲突问题。
  4)设计并实现了基于bytecode混淆的Android应用保护系统DexPro,通过选取常用的算法作为混淆测试的实例,对其加固前后的代码大小和性能消耗进行了对比分析。实验结果表明该混淆方法对于保护Android应用软件是有效且实用的。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号