摘要 | 第4-6页 |
Abstract | 第6-7页 |
第一章 引言 | 第13-18页 |
1.1 研究背景 | 第13-15页 |
1.2 本文工作和论文组织 | 第15-18页 |
1.2.1 本文的主要工作 | 第15-16页 |
1.2.2 论文组织 | 第16-18页 |
第二章 相关工作 | 第18-28页 |
2.1 软件胎记 | 第18-25页 |
2.1.1 软件胎记的提出 | 第18-19页 |
2.1.2 基于静态源代码的胎记 | 第19-21页 |
2.1.3 基于静态目标代码的胎记 | 第21-22页 |
2.1.4 基于动态完整路径的胎记 | 第22-23页 |
2.1.5 基于动态API的胎记 | 第23页 |
2.1.6 基于系统调用的胎记 | 第23-25页 |
2.2 克隆检测 | 第25页 |
2.3 软件混淆 | 第25-27页 |
2.4 本章小结 | 第27-28页 |
第三章 系统调用依赖关系图的生成技术 | 第28-41页 |
3.1 相关技术介绍 | 第28-37页 |
3.1.1 动态二进制插桩DBI和动态二进制分析DBA | 第28-29页 |
3.1.2 taint的基本原理 | 第29-31页 |
3.1.3 Valgrind工作原理 | 第31-37页 |
3.2 系统调用依赖关系图的提取与生成 | 第37-40页 |
3.2.1 Valgrind插件工具的工作机制 | 第37-39页 |
3.2.2 系统调用依赖关系提取 | 第39-40页 |
3.3 本章小结 | 第40-41页 |
第四章 基于系统调用依赖关系图的混淆 | 第41-60页 |
4.1 设计思路 | 第41-42页 |
4.2 系统调用依赖关系图混淆的有效性 | 第42-49页 |
4.2.1 图匹配算法介绍 | 第43-47页 |
4.2.2 基于VF2算法的混淆有效性分析 | 第47-48页 |
4.2.3 VF2算法实现 | 第48-49页 |
4.3 系统调用依赖关系图的混淆实现 | 第49-59页 |
4.3.1 系统调用混淆原理 | 第49-52页 |
4.3.2 系统调用混淆方案 | 第52-54页 |
4.3.3 系统调用混淆具体实现 | 第54-59页 |
4.4 本章小结 | 第59-60页 |
第五章 系统评估 | 第60-66页 |
5.1 系统调用依赖关系提取 | 第60页 |
5.2 系统调用依赖关系图的匹配 | 第60页 |
5.3 系统调用的混淆 | 第60-64页 |
5.3.1 有效性 | 第62-63页 |
5.3.2 性能开销 | 第63-64页 |
5.4 本章小结 | 第64-66页 |
第六章 总结与展望 | 第66-67页 |
致谢 | 第67-68页 |
参考文献 | 第68-74页 |