基于虚拟机框架的代码混淆技术研究
摘要 | 第4-5页 |
Abstract | 第5页 |
第一章 绪论 | 第11-19页 |
1.1 研究背景 | 第11-12页 |
1.2 国内外研究现状 | 第12-16页 |
1.2.1 代码混淆技术 | 第12-13页 |
1.2.2 虚拟机代码保护技术 | 第13-15页 |
1.2.3 虚拟机逆向分析技术 | 第15-16页 |
1.3 研究意义及方法 | 第16-17页 |
1.4 本文主要工作及组织结构 | 第17-19页 |
第二章 基础理论与框架 | 第19-31页 |
2.1 代码混淆基础理论 | 第19-24页 |
2.1.1 代码混淆技术概述 | 第19页 |
2.1.2 代码混淆形式化定义 | 第19-23页 |
2.1.3 代码混淆技术分类 | 第23-24页 |
2.2 基于虚拟机的代码混淆框架 | 第24-27页 |
2.2.1 虚拟机代码保护技术概述 | 第24-25页 |
2.2.2 虚拟机代码保护模型基本组成 | 第25-26页 |
2.2.3 虚拟机保护程序执行流程分析 | 第26-27页 |
2.3 虚拟机逆向分析与对抗思路 | 第27-30页 |
2.4 本章小节 | 第30-31页 |
第三章 一种基于指令交换的指令乱序算法 | 第31-45页 |
3.1 指令交换基本定义 | 第31-34页 |
3.1.1 指令交换充分条件 | 第31-33页 |
3.1.2 讨论 | 第33-34页 |
3.1.3 指令交换充分条件 | 第34页 |
3.2 指令乱序混淆算法 | 第34-37页 |
3.2.1 指令交换 | 第34-35页 |
3.2.2 指令乱序算法 | 第35-37页 |
3.3 实验及分析 | 第37-43页 |
3.3.1 理论分析 | 第37-38页 |
3.3.2 实验验证 | 第38-43页 |
3.4 本章小结 | 第43-45页 |
第四章 一种增强型虚拟寄存器轮转算法 | 第45-53页 |
4.1 虚拟机关键数据结构 | 第45-47页 |
4.2 增强型寄存器轮转算法 | 第47-49页 |
4.2.1 寄存器轮转算法 | 第47-48页 |
4.2.2 轮转长度选取 | 第48-49页 |
4.3 实验及分析 | 第49-52页 |
4.3.1 理论分析 | 第49页 |
4.3.2 实验验证 | 第49-52页 |
4.4 本章小结 | 第52-53页 |
第五章 原型系统的设计与实现 | 第53-64页 |
5.1 系统整体方案设计 | 第53-55页 |
5.2 系统模块设计与实现 | 第55-58页 |
5.2.1 输入文件处理模块 | 第55-56页 |
5.2.2 指令虚拟化模块 | 第56-57页 |
5.2.3 虚拟机构造模块 | 第57页 |
5.2.4 保护文件生成模块 | 第57-58页 |
5.3 关键算法设计 | 第58-59页 |
5.3.1 指令乱序与寄存器轮转 | 第58页 |
5.3.2 代码切片乱序 | 第58-59页 |
5.4 系统测试与分析 | 第59-63页 |
5.4.1 系统测试与用例 | 第59页 |
5.4.2 有效性验证 | 第59-61页 |
5.4.3 性能分析 | 第61-63页 |
5.5 本章小结 | 第63-64页 |
第六章 总结与展望 | 第64-66页 |
6.1 总结 | 第64页 |
6.2 展望 | 第64-66页 |
致谢 | 第66-67页 |
参考文献 | 第67-71页 |
附录 | 第71-74页 |
作者简历 | 第74页 |