论文部分内容阅读
XDCHECK是一个针对C/C++程序的静态安全检查工具。本文的主要工作是设计并实现XDCHECK中用于收集程序符号信息的符号表子系统。本文分析了XDCHECK工具的框架设计,以及其安全检查方法对程序符号信息的特殊需求,并在此基础上设计和实现了符号表系统的框架。XDCHECK工具利用GCC编译器生成的中间表示作为分析对象,但GCC中间表示的组织结构并不完全适合XDCHECK工具的要求。本文分析了GCC中间表示的组织形式与XDCHECK安全分析方法对分析数据的要求,设计并实现了一组数据结构和算法,从GCC中间表示中获取有关的信息,并重新组织为适合XDCHECK安全检查工具访问的形式。同时,本文给出了一组算法,用于根据GCC中间表示中保存的信息和GCC编译器代码生成逻辑进行推理,从而获得某些没有被直接保存在GCC中间表示中的程序信息。实践表明,该符号表能够满足XDCHECK工具安全检查的需要。论文最后分析了目前的符号表实现中存在的一些缺陷,并对后续开发中克服这些缺陷提出了可能的改进方案。