Clang上的C/C++过程间分析和漏洞发掘
摘要 | 第1-5页 |
Abstract | 第5-11页 |
第1章 引言 | 第11-14页 |
·研究背景 | 第11-12页 |
·本文研究内容和贡献 | 第12页 |
·本文章节组织 | 第12页 |
·术语与缩写 | 第12-14页 |
第2章 软件安全漏洞 | 第14-18页 |
·软件安全漏洞概述 | 第14页 |
·软件安全漏洞分类 | 第14-18页 |
·输入验证 | 第15页 |
·缓冲区溢出 | 第15-16页 |
·缓冲区溢出伴随的问题 | 第16-17页 |
·错误与异常 | 第17-18页 |
第3章 静态分析及过程间分析技术 | 第18-32页 |
·静态分析技术 | 第18-24页 |
·静态分析概述 | 第18-19页 |
·静态分析用途 | 第19页 |
·静态分析技术路线 | 第19-22页 |
·静态分析方法与理论 | 第22-23页 |
·静态分析工具 | 第23-24页 |
·过程间分析技术 | 第24-26页 |
·过程间分析技术内幕 | 第24-25页 |
·过程间漏洞发掘 | 第25-26页 |
·PREfix 的设计思路 | 第26-31页 |
·PREfix 处理流程 | 第27页 |
·模拟函数的过程 | 第27-28页 |
·模拟路径的过程 | 第28-29页 |
·模型的仿真过程 | 第29-30页 |
·模型的框架和生成 | 第30-31页 |
·小结 | 第31-32页 |
第4章 Clang 系统设计 | 第32-39页 |
·Clang 背景 | 第32-33页 |
·LLVM 概述 | 第32页 |
·Clang 概述 | 第32-33页 |
·Clang 的系统设计 | 第33-36页 |
·Clang 的库形式架构 | 第33-34页 |
·Clang 驱动器设计 | 第34-36页 |
·Clang 的静态分析器 | 第36-38页 |
·静态分析器简介 | 第36-37页 |
·静态分析器架构 | 第37-38页 |
·小结 | 第38-39页 |
第5章 SimpleIPA 系统实现 | 第39-59页 |
·SimpleIPA 的设计要求 | 第39页 |
·SimpleIPA 的驱动 | 第39-42页 |
·Clang 的驱动 | 第39-41页 |
·Clang-cc 的驱动 | 第41-42页 |
·SimpleIPA 基本设计策略 | 第42-44页 |
·函数分析顺序的策略 | 第42-43页 |
·路径分析的策略 | 第43-44页 |
·模型生成的策略 | 第44页 |
·SimpleIPA 原型系统节点 | 第44-50页 |
·函数分析控制节点 | 第44-45页 |
·路径分析控制节点 | 第45-46页 |
·路径信息节点 | 第46-47页 |
·约束信息节点 | 第47-48页 |
·模型信息节点 | 第48-49页 |
·输出信息节点 | 第49-50页 |
·SimpleIPA 的主要算法及实现 | 第50-55页 |
·创建控制节点 | 第51-52页 |
·本地分析算法 | 第52-53页 |
·特殊语句处理算法 | 第53-54页 |
·模型生成算法 | 第54-55页 |
·实例分析 | 第55-58页 |
·路径生成分析 | 第55-57页 |
·模型生成分析 | 第57-58页 |
·基于模型的本地算法分析 | 第58页 |
·小结 | 第58-59页 |
第6章 总结和展望 | 第59-62页 |
·全文总结 | 第59-60页 |
·工作展望 | 第60-62页 |
·函数分析策略的改进 | 第60页 |
·约束信息节点的扩展 | 第60页 |
·规则分析的引入 | 第60页 |
·基于中间表示的分析 | 第60-61页 |
·过程间分析与动态测试结合 | 第61-62页 |
参考文献 | 第62-64页 |
研究生期间发表论文以及其他研究成果 | 第64-65页 |
致谢 | 第65页 |