C/C++程序中指针有效性的静态检测
摘要 | 第1-4页 |
ABSTRACT | 第4-7页 |
第一章 绪论 | 第7-13页 |
·研究背景 | 第7页 |
·研究现状 | 第7-8页 |
·XDCHECK系统总体概述 | 第8-10页 |
·系统功能 | 第8-9页 |
·系统框架 | 第9-10页 |
·论文的主要工作及论文组织 | 第10-13页 |
第二章 指针非法使用的表现及检查方案 | 第13-31页 |
·指针非法使用的表现及产生原因分析 | 第13-15页 |
·指针无效引用 | 第13-14页 |
·释放不合法的地址 | 第14-15页 |
·指针有效性检查模块的整体结构 | 第15-16页 |
·变量及变量状态的记录方式 | 第16-18页 |
·变量信息的存储结构 | 第16-17页 |
·指针状态的分类 | 第17页 |
·指针状态的契约结构 | 第17-18页 |
·安全检查所需信息的提取 | 第18-26页 |
·抽象语法树简介 | 第19-20页 |
·信息提取过程与方法 | 第20-26页 |
·变量声明节点的安全分析算法 | 第20-24页 |
·赋值表达式节点的安全分析算法 | 第24-26页 |
·根据安全规则实现安全检查 | 第26-29页 |
·本章小结 | 第29-31页 |
第三章 指针有效性检查的关键技术 | 第31-49页 |
·指针指向的变量超出作用域 | 第31-32页 |
·程序分支引起指针状态的不确定性 | 第32-41页 |
·设计思想 | 第33页 |
·控制流语句的表示方法 | 第33-35页 |
·控制流节点 | 第33-34页 |
·控制流链表 | 第34-35页 |
·各种控制流语句的处理方式 | 第35-38页 |
·if语句和switch语句 | 第36页 |
·for、while和do_while语句 | 第36-37页 |
·break、continue和return语句 | 第37-38页 |
·控制流节点的合并规则 | 第38-40页 |
·指针状态的查找方法 | 第40-41页 |
·共享指针内容引起的依赖问题 | 第41-43页 |
·跨过程的指针检查 | 第43-47页 |
·自下而上的分析方法 | 第44页 |
·函数契约 | 第44-45页 |
·具体实现 | 第45-47页 |
·函数声明节点的安全分析算法 | 第45-46页 |
·函数返回节点的安全分析算法 | 第46页 |
·函数调用节点的安全分析算法 | 第46-47页 |
·结构体内指针和多重指针 | 第47-49页 |
第四章 实例分析 | 第49-51页 |
第五章 结束语 | 第51-53页 |
致谢 | 第53-55页 |
参考文献 | 第55-57页 |
作者在读期间的研究成果 | 第57页 |