摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
第一章 绪论 | 第10-15页 |
1.1 研究背景及意义 | 第10-11页 |
1.2 国内外研究现状 | 第11-13页 |
1.3 论文主要工作内容 | 第13页 |
1.4 论文章节安排 | 第13-15页 |
第二章 安全威胁分析及技术背景介绍 | 第15-22页 |
2.1 Android native层代码功能分析 | 第15-16页 |
2.2 Android native层代码面临的安全威胁及应对策略 | 第16-20页 |
2.2.1 代码注入攻击及调试 | 第16-17页 |
2.2.2 替换和篡改攻击 | 第17-19页 |
2.2.3 针对代码的逆向分析 | 第19-20页 |
2.3 LLVM及其作为混淆器工作基础的优势 | 第20-21页 |
2.4 本章小结 | 第21-22页 |
第三章 控制流混淆技术的Android native实现 | 第22-34页 |
3.1 面向Android native代码的控制流平坦化原理及实现 | 第22-28页 |
3.1.1 控制流平坦化原理 | 第22-23页 |
3.1.2 控制流平坦化的LLVM实现 | 第23-28页 |
3.2 不透明谓词混淆技术的Android native实现 | 第28-33页 |
3.2.1 不透明谓词及其常见产生方式 | 第28-31页 |
3.2.2 基于数论不透明谓词的Android native代码混淆实现 | 第31-33页 |
3.3 本章小结 | 第33-34页 |
第四章 替换混淆技术的Android native实现 | 第34-47页 |
4.1 传统代码混淆常用替换手段 | 第34-37页 |
4.2 基于折半拆分和指令替换的整型数替换混淆技术 | 第37-41页 |
4.2.1 整型数拆分的原理 | 第37-39页 |
4.2.2 整型数拆分的实现 | 第39-41页 |
4.3 基于数组拆分和元素下标二次索引的数组混淆技术 | 第41-46页 |
4.3.1 数组替换混淆原理 | 第41-44页 |
4.3.2 数组混淆的LLVM实现 | 第44-46页 |
4.4 本章小结 | 第46-47页 |
第五章 Android native代码混淆系统的设计及实验分析 | 第47-57页 |
5.1 系统设计及与编译器的无缝集成 | 第47-48页 |
5.2 实验设计及结果分析 | 第48-56页 |
5.2.1 测试环境 | 第48-49页 |
5.2.2 混淆性能演示 | 第49-52页 |
5.2.3 ndk-samples测试及数据分析 | 第52-54页 |
5.2.4 LIT测试及数据分析 | 第54-56页 |
5.3 本章小结 | 第56-57页 |
第六章 总结与展望 | 第57-60页 |
6.1 论文工作总结 | 第57-58页 |
6.2 问题及展望 | 第58-60页 |
6.2.1 Android平台上代码保护面临的问题 | 第58-59页 |
6.2.2 未来工作展望 | 第59-60页 |
参考文献 | 第60-63页 |
致谢 | 第63-64页 |
攻读学位期间发表的学术论文目录 | 第64页 |