致谢 | 第7-8页 |
摘要 | 第8-9页 |
abstract | 第9页 |
第一章 绪论 | 第15-19页 |
1.1 研究背景与意义 | 第15页 |
1.2 国内外研究现状 | 第15-17页 |
1.3 论文研究内容 | 第17页 |
1.4 论文组织架构 | 第17-19页 |
第二章 代码混淆 | 第19-28页 |
2.1 代码混淆的概念 | 第19-20页 |
2.2 代码混淆的分类 | 第20页 |
2.3 标识符重命名 | 第20-21页 |
2.4 数据流混淆 | 第21-22页 |
2.5 类结构混淆 | 第22页 |
2.6 控制流混淆 | 第22-26页 |
2.6.1 基于不透明谓词的控制流混淆 | 第22-24页 |
2.6.2 基于垃圾代码的控制流混淆 | 第24-26页 |
2.7 代码混淆的评估方法 | 第26-27页 |
2.8 本章小结 | 第27-28页 |
第三章 Java字节码 | 第28-35页 |
3.1 JVM指令集 | 第28-31页 |
3.2 Java字节码文件结构 | 第31-33页 |
3.3 BCEL和Sandmark | 第33-34页 |
3.4 本章小结 | 第34-35页 |
第四章 基于嵌套复杂度的控制流混淆算法 | 第35-46页 |
4.1 控制流 | 第35-36页 |
4.1.1 Java字节码控制流图 | 第35-36页 |
4.1.2 控制流复杂度 | 第36页 |
4.2 OB NC算法基本思想 | 第36-37页 |
4.3 算法步骤 | 第37-42页 |
4.3.1 初始化 | 第37页 |
4.3.2 计算插入点的循环嵌套深度 | 第37-40页 |
4.3.3 计算混淆强度 | 第40页 |
4.3.4 选择插入点进行混淆 | 第40-42页 |
4.4 算法分析 | 第42-44页 |
4.5 本章小结 | 第44-46页 |
第五章 OB_NC算法性能测试 | 第46-52页 |
5.1 测试环境 | 第46页 |
5.2 CFG对比 | 第46-48页 |
5.3 混淆强度 | 第48-50页 |
5.4 混淆开销 | 第50-51页 |
5.5 本章小结 | 第51-52页 |
第六章 OB_NC算法在安卓APP安全加固中的应用 | 第52-62页 |
6.1 安卓APP安全加固 | 第52-56页 |
6.1.1 安卓APP文件结构 | 第52-53页 |
6.1.2 DEX加壳 | 第53-55页 |
6.1.3 破解DEX壳 | 第55-56页 |
6.2 OB_NC算法在APP安全加固中的应用 | 第56-58页 |
6.2.1 不透明谓词和垃圾代码的构造 | 第56页 |
6.2.2 加固流程 | 第56-58页 |
6.3 测试 | 第58-61页 |
6.3.1 测试环境 | 第58页 |
6.3.2 测试结果 | 第58-61页 |
6.4 本章小结 | 第61-62页 |
第七章 总结与展望 | 第62-63页 |
7.1 总结 | 第62页 |
7.2 展望 | 第62-63页 |
参考文献 | 第63-67页 |
攻读硕士学位期间的学术活动及成果情况 | 第67-68页 |