学位论文 > 优秀研究生学位论文题录展示

C++静态代码检测语法树构建方法研究

作 者: 王丽
导 师: 周宽久
学 校: 大连理工大学
专 业: 计算机技术
关键词: 可信软件 静态检测 关系语法树 安全规则
分类号: TP311.53
类 型: 硕士论文
年 份: 2011年
下 载: 77次
引 用: 0次
阅 读: 论文下载
 

内容摘要


软件系统的可靠性越来越被人们重视,尤其在安全性要求苛刻的场合,如航天飞行器、汽车和某些工业控制系统。软件安全分析是可靠性保证的重要手段之一。静态分析技术不需要执行程序并能从中发现早期的安全漏洞而受到广泛的关注,在软件安全分析中发挥着重要作用。由于软件规模不断扩大,静态分析使用人工走查已经越来越不现实。一个可信的自动化静态分析工具具有十分高的使用价值和前景。语法树作为代码解析的重要基础,是对代码进行静态分析的起点。通过构建语法树,可对程序进行匹配分析,获取代码相关信息。本文研究了C++源代码静态检测系统的语法树模块构建方法,提出了一种基于关系存储模式的关系语法树模型。首先对C++文法构成进行深入分析,然后设计针对C++的词法分析和语法分析模块,并且借助Lex和Yacc工具构建一个合法C++程序的“超集”的语法树。通过上述方法生成的语法树可以被转化成为中间数据存储模型,为静态检测系统后端提供重要基础。本文利用Visual Studio2008开发工具结合Lex、Yacc工具实现一个运行于Windows环境下的C++语法树模块。支持包括词法、语法、浅层与深层语义分析在内的多层次分析,从而能以可信方式检测安全漏洞。可以检测出关联文件检测才能引发的安全漏洞,实现对分布在不同文件中的关联代码的检查。该模块能够识别所有符合标准C++语法的源程序,为提取C++源代码信息的后续工作提供了基础。最后通过实验数据结果分析,验证了该模块的覆盖率和准确性。

全文目录


摘要  4-5
Abstract  5-8
1 绪论  8-11
  1.1 研究目的和意义  8
  1.2 国内外研究现状  8-9
  1.3 研究内容  9-10
  1.4 论文的组织结构  10-11
2 静态检测方法与工具概述  11-21
  2.1 软件的动态测试与静态分析  11-12
  2.2 静态分析方法  12-14
  2.3 静态检测工具  14-16
  2.4 Lex与Yacc工具  16-18
  2.5 C++安全编程规则  18-20
  2.6 本章小结  20-21
3 核心技术研究  21-35
  3.1 C++代码解析方法  23-25
  3.2 C++语法树构建  25-30
  3.3 符号表组织  30-32
  3.4 内存管理机制  32-34
  3.5 本章小结  34-35
4 C++静态检测语法树设计与验证  35-64
  4.1 功能需求分析  35
  4.2 C++词法分析设计  35-39
  4.3 C++语法分析设计  39-50
    4.3.1 数据对象声明  39-42
    4.3.2 函数与函数指针声明  42
    4.3.3 条件选择与循环  42-44
    4.3.4 异常处理文法  44
    4.3.5 类文法  44-45
    4.3.6 表达式文法与操作符  45-48
    4.3.7 语句  48-49
    4.3.8 模板  49-50
  4.4 Lex中C++词法分析模块的实现  50-54
    4.4.1 预处理语句词法  50
    4.4.2 注释语句块词法  50-51
    4.4.3 C++关键字词法  51
    4.4.4 数字常量词法  51-52
    4.4.5 运算符词法  52-53
    4.4.6 标识符词法  53-54
  4.5 Yacc中C++语法树模块的实现  54-60
    4.5.1 语法分析开始符号  54
    4.5.2 C++语句语法树构建  54-55
    4.5.3 C++语法中的类型及其语法树构建  55-56
    4.5.4 类的语法树的构建  56-57
    4.5.5 类模板的语法树构建  57-58
    4.5.6 表达式的处理  58-60
  4.6 C++语法树覆盖率和准确性验证  60-62
    4.6.1 测试用例的设计和选择  60
    4.6.2 测试结果与分析  60-62
  4.7 本章小结  62-64
结论  64-65
参考文献  65-68
致谢  68-69

相似论文

  1. C++代码缺陷检测系统的研究与设计,TP311.53
  2. Android恶意软件静态检测方案的研究,TP309
  3. 基于内容的网页恶意代码检测的研究与实现,TP393.092
  4. 基于多样化对象所有权的软件可信性质研究,TP311.52
  5. 分散式跨组织工作流执行模型的研究,TP311.52
  6. 基于GCC的缓冲区溢出检测研究,TP393.08
  7. 面向邮件系统的恶意代码检测技术研究,TP393.08
  8. 基于状态机的安全漏洞检查机制的设计与实现,TP309
  9. 基于模型检测方法的可信软件验证技术研究,TP311.52
  10. 基于缺陷分析与测试评审的软件可信性评价体系,TP311.52
  11. 基于形式化方法的统一软件模型及其应用,TP311.52
  12. 可信计算平台动态测试系统的设计与实现,TP311.53
  13. 面向邮件附件的恶意代码检测系统,TP393.098
  14. 基于码表理论的恶意代码检测技术研究,TP393.08
  15. 数据驱动型漏洞检测技术研究,TP393.08
  16. 出具证明编译器中证明生成的研究,TP314
  17. Isabelle定理证明器的剖析及其在PAR方法/PAR平台中的应用,TP311.11
  18. 基于CMMI的可信软件风险管理研究,TP311.52
  19. 可信软件实时性测试用例构造方法研究,TP311.52
  20. 可信终端接入认证技术研究,TP393.08

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 程序设计、软件工程 > 软件工程 > 软件维护
© 2012 www.xueweilunwen.com