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页 |