多样性代码虚拟化保护方法的研究与实现
摘要 | 第4-5页 |
ABSTRACT | 第5-6页 |
第一章 引言 | 第10-18页 |
1.1 研究背景 | 第10-12页 |
1.2 国内外研究现状 | 第12-15页 |
1.2.1 混淆保护 | 第12-13页 |
1.2.2 软件多样性 | 第13-15页 |
1.3 本文研究的主要内容和创新点 | 第15-16页 |
1.4 本文组织结构 | 第16-18页 |
第二章 代码虚拟化保护与攻击 | 第18-24页 |
2.1 代码虚拟化保护 | 第18-20页 |
2.1.1 基本原理 | 第18-19页 |
2.1.2 保护过程 | 第19-20页 |
2.1.3 保护后程序的执行过程 | 第20页 |
2.2 代码虚拟化保护的攻击 | 第20-23页 |
2.2.1 基于虚拟执行的攻击方法 | 第20-21页 |
2.2.2 基于行为的攻击方法 | 第21-22页 |
2.2.3 基于语义的攻击方法 | 第22-23页 |
2.3 本章小结 | 第23-24页 |
第三章 具有多样性的代码虚拟化保护方法 | 第24-44页 |
3.1 DCVP概述 | 第24-25页 |
3.2 x86指令的虚拟化 | 第25-32页 |
3.2.1 虚拟机架构 | 第26页 |
3.2.2 虚拟指令和处理函数 | 第26-31页 |
3.2.3 x86指令到虚拟指令的映射 | 第31-32页 |
3.3 虚拟解释器的多样性混淆 | 第32-38页 |
3.3.1 等价指令替换 | 第33-34页 |
3.3.2 垃圾指令插入 | 第34页 |
3.3.3 控制流平展 | 第34-36页 |
3.3.4 代码乱序 | 第36-37页 |
3.3.5 多种混淆方法的综合使用 | 第37-38页 |
3.4 虚拟指令的多样性编码 | 第38-43页 |
3.4.1 虚拟指令的编码 | 第38-40页 |
3.4.2 随机化编码 | 第40-41页 |
3.4.3 分块随机化编码 | 第41-43页 |
3.5 本章小结 | 第43-44页 |
第四章 原型系统的设计与实现 | 第44-58页 |
4.1 原型系统的模块结构设计 | 第44-45页 |
4.2 关键算法设计 | 第45-54页 |
4.2.1 虚拟解释器的多样性混淆 | 第45-46页 |
4.2.2 等价指令替换 | 第46-49页 |
4.2.3 垃圾代码插入 | 第49页 |
4.2.4 控制流平展 | 第49-52页 |
4.2.5 代码乱序 | 第52-54页 |
4.3 原型系统的实现 | 第54-56页 |
4.4 本章小结 | 第56-58页 |
第五章 实验与分析 | 第58-68页 |
5.1 实验介绍 | 第58-60页 |
5.2 DCVP对程序功能的影响 | 第60-63页 |
5.2.1 对md5程序的功能的影响 | 第60页 |
5.2.2 对gzip程序的功能的影响 | 第60-61页 |
5.2.3 对bcrypt程序的功能的影响 | 第61-62页 |
5.2.4 对mat_mul程序的功能的影响 | 第62-63页 |
5.3 DCVP的多样性保护效果 | 第63-65页 |
5.3.1 虚拟解释器的多样性混淆效果 | 第63-65页 |
5.3.2 虚拟指令的多样性编码效果 | 第65页 |
5.4 原型系统对程序时空开销的影响 | 第65-67页 |
5.4.1 原型系统的空间开销 | 第65-66页 |
5.4.2 原型系统的时间开销 | 第66-67页 |
5.4.3 与商用保护系统的对比 | 第67页 |
5.5 本章小结 | 第67-68页 |
总结与展望 | 第68-70页 |
总结 | 第68页 |
展望 | 第68-70页 |
参考文献 | 第70-76页 |
攻读硕士学位期间取得的科研成果 | 第76-78页 |
1 发表学术论文 | 第76页 |
2 申请专利 | 第76-78页 |
致谢 | 第78页 |