摘要 | 第4-6页 |
ABSTRACT | 第6-7页 |
第一章 绪论 | 第11-17页 |
1.1 研究背景与意义 | 第11-12页 |
1.2 国内外研究现状 | 第12-14页 |
1.2.1 Dex文件的保护 | 第12-13页 |
1.2.2 So文件的保护 | 第13-14页 |
1.3 本文研究内容 | 第14-15页 |
1.4 本文组织结构 | 第15-17页 |
第二章 Android系统机制和应用程序安全分析 | 第17-31页 |
2.1 Android应用程序结构及运行环境 | 第17-19页 |
2.1.1 Android应用程序的结构 | 第17-18页 |
2.1.2 Android应用程序的运行环境 | 第18-19页 |
2.2 Android虚拟机和底层Linker机制 | 第19-21页 |
2.2.1 Android系统中Dex文件的加载 | 第19-20页 |
2.2.2 Android系统中Linker机制分析 | 第20-21页 |
2.3 Android应用程序的保护和逆向 | 第21-29页 |
2.3.1 Android中Dex文件的保护和逆向 | 第21-25页 |
2.3.2 Android中So文件的保护和逆向 | 第25-28页 |
2.3.3 反调试以及检测各种Hook框架 | 第28-29页 |
2.3.4 混淆保护以及签名检测 | 第29页 |
2.4 本章小结 | 第29-31页 |
第三章 基于多重指令虚拟的Android应用程序保护方法 | 第31-41页 |
3.1 多重指令虚拟保护方法介绍 | 第31-32页 |
3.2 Dex文件的多重虚拟保护 | 第32-35页 |
3.2.1 Dex文件部分方法的Native化 | 第32-34页 |
3.2.2 Dex文件中残码的多样性虚拟保护 | 第34-35页 |
3.2.3 Native化和残码的多样性虚拟保护结合 | 第35页 |
3.2.4 兼容性&强壮性 | 第35页 |
3.3 So文件的虚拟化保护 | 第35-38页 |
3.3.1 基于栈的ARM虚拟保护 | 第35-36页 |
3.3.2 So文件的编译虚拟保护 | 第36-37页 |
3.3.3 基于栈的ARM虚拟保护和编译虚拟的结合 | 第37-38页 |
3.4 保护以后应用程序的执行流程 | 第38页 |
3.5 本章小结 | 第38-41页 |
第四章 原型系统的设计与实现 | 第41-53页 |
4.1 整体框架的设计 | 第41-43页 |
4.2 关键数据结构 | 第43-45页 |
4.2.1 Dex文件保护中的数据结构 | 第43-44页 |
4.2.2 So文件保护中数据结构 | 第44-45页 |
4.3 关键算法设计 | 第45-52页 |
4.3.1 JNI反射下沉算法 | 第45-47页 |
4.3.2 Dex文件多样性虚拟保护算法 | 第47-49页 |
4.3.3 基于栈的ARM指令虚拟保护算法 | 第49-50页 |
4.3.4 编译虚拟保护算法 | 第50-52页 |
4.4 本章小结 | 第52-53页 |
第五章 系统评测实验和分析 | 第53-69页 |
5.1 系统界面展示 | 第53页 |
5.2 实验环境及目的 | 第53-54页 |
5.3 软件强度评估 | 第54-64页 |
5.3.1 整体评估 | 第54页 |
5.3.2 静态、动态分析 | 第54-62页 |
5.3.3 防虚拟机攻击分析 | 第62-64页 |
5.4 性能消耗评估 | 第64-67页 |
5.4.1 实验环境与实验用例 | 第64页 |
5.4.2 实验过程 | 第64页 |
5.4.3 Dex文件保护前后评估 | 第64-67页 |
5.5 本章小结 | 第67-69页 |
第六章 总结与展望 | 第69-73页 |
6.1 总结 | 第69-70页 |
6.2 展望 | 第70-73页 |
参考文献 | 第73-77页 |
致谢 | 第77-78页 |
攻读硕士学位期间取得的科研成果 | 第78-79页 |
1 发表学术论文 | 第78页 |
2 申请(授权)专利 | 第78-79页 |