动态二进制程序漏洞挖掘的系统设计
| 摘要 | 第1-5页 |
| ABSTRACT | 第5-9页 |
| 第一章 绪论 | 第9-13页 |
| ·课题研究背景 | 第9-10页 |
| ·国内外研究现状 | 第10-11页 |
| ·研究内容 | 第11页 |
| ·论文结构及章节安排 | 第11-13页 |
| 第二章 几种动态分析平台框架和主要技术 | 第13-38页 |
| ·Intel Pin平台 | 第13-19页 |
| ·Pin的基本架构 | 第13-15页 |
| ·JIT模式与Probe模式 | 第15-17页 |
| ·Pintool例子 | 第17-19页 |
| ·DynamoRIO平台 | 第19-25页 |
| ·DynamoRIO的基本架构 | 第20页 |
| ·DynamoRIO指令序列的优化 | 第20-23页 |
| ·DynamoRIO与Pin性能对比 | 第23-25页 |
| ·Valgrind平台 | 第25-32页 |
| ·Valgrind的基本架构 | 第25-26页 |
| ·插件的编写方法 | 第26-27页 |
| ·VEX中间表示 | 第27-31页 |
| ·代码插桩方法 | 第31-32页 |
| ·BAP & BitBlaze平台 | 第32-36页 |
| ·Vine中间表示 | 第32-34页 |
| ·BAP平台 | 第34-35页 |
| ·BitBlaze平台 | 第35-36页 |
| ·各平台比较 | 第36-38页 |
| ·平台支持 | 第36-37页 |
| ·运行效率与开发工具 | 第37-38页 |
| 第三章 原型系统设计及关键算法 | 第38-48页 |
| ·原型系统设计 | 第39-40页 |
| ·污点 | 第40-42页 |
| ·什么是污点 | 第40页 |
| ·x86下内存地址定义 | 第40-41页 |
| ·污点的数学模型 | 第41-42页 |
| ·基于污点的输入跟踪 | 第42-43页 |
| ·污点跟踪流程 | 第42-43页 |
| ·动态污点指令列表 | 第43页 |
| ·基于危险操作的漏洞辅助判断方法 | 第43-48页 |
| ·动态执行辅助规则 | 第44页 |
| ·危险函数辅助规则 | 第44-48页 |
| 第四章 原型系统实现 | 第48-62页 |
| ·总体模块介绍 | 第48-49页 |
| ·基本数据结构设计 | 第49-52页 |
| ·XTByte类 | 第49-51页 |
| ·XTDWORD类 | 第51-52页 |
| ·基于储存结构定义 | 第52-55页 |
| ·哈希表 | 第52-53页 |
| ·XTReg类 | 第53-55页 |
| ·XTMem类 | 第55页 |
| ·二进制指令插桩 | 第55-58页 |
| ·危险操作的动态监视 | 第58-62页 |
| 第五章 原型系统测试 | 第62-69页 |
| ·测试环境 | 第62页 |
| ·数据流与控制流的冗余生成测试 | 第62-64页 |
| ·污点数据跟踪测试 | 第64-66页 |
| ·单点数据流的跟踪测试 | 第64-65页 |
| ·多点数据流的跟踪测试 | 第65-66页 |
| ·危险操作跟踪 | 第66-67页 |
| ·性能测试 | 第67-69页 |
| 第六章 结论 | 第69-70页 |
| ·总结 | 第69页 |
| ·展望 | 第69-70页 |
| 参考文献 | 第70-72页 |
| 致谢 | 第72-73页 |
| 攻读学位期间发表或已录用的学术论文 | 第73页 |