C/C++源代码静态检测系统的设计和实现
| 摘要 | 第1-6页 |
| ABSTRACT | 第6-14页 |
| 第一章 绪论 | 第14-28页 |
| ·传统的手工评测模式 | 第14页 |
| ·源代码在线评测系统的概述 | 第14-15页 |
| ·源代码在线评测系统的发展 | 第14-15页 |
| ·源代码在线评测系统存在的安全性问题 | 第15页 |
| ·C/C++源代码中常见的错误 | 第15-19页 |
| ·存储越界 | 第15-16页 |
| ·动态存储分配问题 | 第16-18页 |
| ·内存泄漏 | 第18-19页 |
| ·符号执行技术 | 第19-25页 |
| ·符号执行的基本概念 | 第19-21页 |
| ·符号执行的过程 | 第21-23页 |
| ·符号执行系统框架 | 第23-25页 |
| ·符号执行的相关问题 | 第25页 |
| ·课题的意义 | 第25-28页 |
| 第二章 系统架构 | 第28-34页 |
| ·C/C++源代码静态检测系统概述 | 第28页 |
| ·系统的符号执行过程 | 第28-31页 |
| ·CSTS的架构 | 第31-34页 |
| ·CSTS的主体架构 | 第31-32页 |
| ·CSTS的模块设计 | 第32-34页 |
| 第三章 静态分析树的生成和遍历 | 第34-38页 |
| ·系统的静态分析 | 第34页 |
| ·静态分析树 | 第34-38页 |
| ·静态分析树的构造 | 第35-37页 |
| ·静态分析树的遍历 | 第37-38页 |
| 第四章 基于静态分析树的符号执行 | 第38-58页 |
| ·CSTS系统的路径调度策略 | 第38-40页 |
| ·CSTS的符号计算 | 第40-45页 |
| ·数据结构 | 第40页 |
| ·符号计算 | 第40-42页 |
| ·符号计算实例分析 | 第42-45页 |
| ·调用函数的处理 | 第45-47页 |
| ·相关的数据结构 | 第45-46页 |
| ·处理过程 | 第46-47页 |
| ·懒符号执行 | 第47-49页 |
| ·懒符号执行语义 | 第47-49页 |
| ·字符串操作函数的处理 | 第49页 |
| ·缓冲区长度的符号化 | 第49页 |
| ·动态内存分配函数的处理 | 第49-52页 |
| ·检测动态释放非动态申请的变量 | 第50页 |
| ·检测内存分配和释放函数的正确配对 | 第50-51页 |
| ·检测重复释放同一内存 | 第51页 |
| ·检测释放连续内存空间的顺序错误 | 第51页 |
| ·检测未释放的内存空间 | 第51-52页 |
| ·约束求解 | 第52页 |
| ·程序测试分析 | 第52-58页 |
| 第五章 系统测试 | 第58-64页 |
| ·测试环境 | 第58页 |
| ·功能测试 | 第58-64页 |
| ·测试用例一 | 第58-60页 |
| ·测试用例二 | 第60-64页 |
| 第六章 总结 | 第64-66页 |
| ·本文总结 | 第64页 |
| ·需改进的地方 | 第64-66页 |
| 参考文献 | 第66-68页 |
| 致谢 | 第68-70页 |
| 研究成果及发表的学术论文 | 第70-72页 |
| 作者和导师简介 | 第72-73页 |
| 附录 | 第73-74页 |