嵌入式C程序指针检测研究与系统实现

嵌入式C程序指针检测研究与系统实现

论文摘要

嵌入式系统技术软硬件结合的优势,在各行各业有着广泛而成熟的应用,是当今计算机科学领域研究的热点问题。C程序指针使用复杂,加之C语言规范并未对指针的使用做过多限制,使得指针的误用难以避免,甚至带来严重的安全隐患。此外,嵌入式程序开发过程依赖于交叉编译环境,导致程序的开发和测试更加困难。因此,针对C程序指针的缺陷检测和可靠性研究,对于保证嵌入式程序的安全稳定运行有着极其重要的意义。程序缺陷检测通常分为两种方法,一种是运行时检测法,即动态检测法,另一种方法不依赖于程序运行,被称为静态检测方法。两种方法各有优点,静态检测执行效率高、设计相对简便且不依赖于检测代码的编译运行,所以更加适应对跨平台开发模式下的嵌入式程序进行缺陷检查。本文通过对国内外静态检测理论与技术的研究,提出了一种基于源代码模型转化与缺陷模式匹配的思想进行缺陷检查的方法。其核心思想是,将源代码转化成能够完整表达源码语义,同时又具有良好结构化查询能力的XML映射模型,同时将缺陷模式采用XML查询语言XQuery构建模型,通过驱动两者之间进行模式匹配最终实现缺陷检查。为了适应不同检测对象或环境的相关要求,提出了构建缺陷知识库的基本方法,通过灵活配置检测方案,执行不同的检测策略。此外,缺陷知识库的设计,使得系统便于开发和维护,同时极大地提高了系统的扩展性。本文所提出的检测系统在开发和测试的过程中进行了大量的测试和检测结果分析,验证了本文所提出指针安全检测方法的正确性和检测系统的实用性。本研究的主要工作获得了国家自然科学基金重大培育计划(航天嵌入式软件可信性度量方法与系统,91018003)的资助,再次感谢基金委对本项目组工作的支持。

论文目录

  • 摘要
  • Abstract
  • 1 绪论
  • 1.1 研究背景与意义
  • 1.1.1 嵌入式系统及其安全性
  • 1.1.2 嵌入式软件开发环境
  • 1.1.3 C程序指针安全检测意义
  • 1.2 研究内容
  • 1.3 论文组织结构
  • 2 软件检测研究综述
  • 2.1 概述
  • 2.2 嵌入式C程序主要安全缺陷
  • 2.2.1 内存访问错误
  • 2.2.2 指针释放错误
  • 2.2.3 异常控制
  • 2.2.4 堆栈溢出
  • 2.3 静态检测技术
  • 2.4 静态检测和动态检测的对比
  • 2.5 静态检测工具
  • 2.6 本章小结
  • 3 系统的设计方法与技术研究
  • 3.1 系统的设计流程
  • 3.2 指针安全信息提取研究
  • 3.2.1 静态安全信息提取
  • 3.2.2 抽象语法树构建
  • 3.3 安全信息的表示方法研究
  • 3.3.1 指针复杂类型解析
  • 3.3.2 基于控制流指针别名分析
  • 3.3.3 C程序映射模型设计
  • 3.3.4 指针缺陷描述方法研究
  • 3.4 本章小结
  • 4 代码检测系统的实现
  • 4.1 系统总体结构设计
  • 4.2 代码分析模块
  • 4.2.1 优化处理模块
  • 4.2.2 语义分析模块
  • 4.3 检测执行引擎
  • 4.3.1 方案配置模块
  • 4.3.2 检测执行引擎
  • 4.3.3 缺陷知识库
  • 4.3.4 缺陷定位模块
  • 4.3.5 结果报告模块
  • 4.4 本章小结
  • 5 系统验证
  • 5.1 系统执行验证
  • 5.1.1 系统运行环境
  • 5.1.2 系统执行流程验证
  • 5.2 系统检测结果验证
  • 5.2.1 测试用例
  • 5.2.2 实验数据与结果分析
  • 5.3 本章小结
  • 结论
  • 参考文献
  • 致谢
  • 相关论文文献

    • [1].C语言中关于指针的教学优化研究[J]. 计算机产品与流通 2020(03)
    • [2].垂悬指针检测与防御方法[J]. 软件学报 2020(06)
    • [3].C语言指针学习必要性分析[J]. 科技风 2020(18)
    • [4].C语言指针的教学改革探索[J]. 电子元器件与信息技术 2020(05)
    • [5].德国“印太指针”指向何方[J]. 世界知识 2020(19)
    • [6].C++语言中悬挂指针的研究与应用[J]. 电脑知识与技术 2016(23)
    • [7].开门见山与循序渐进:一种C语言指针教学方法[J]. 计算机教育 2017(04)
    • [8].C语言教学中指针与数组的运用分析[J]. 通讯世界 2017(09)
    • [9].浅析C指针和一维、二维数组之间的关系[J]. 电脑知识与技术 2017(28)
    • [10].读懂你的表盘——指针的设计学问(上)[J]. 钟表 2015(05)
    • [11].中风偏瘫患者家属对朱琏指针点按疗法认知程度的调查分析[J]. 护理实践与研究 2016(10)
    • [12].深入解析C++指针类型[J]. 齐齐哈尔大学学报(自然科学版) 2016(05)
    • [13].C指针在嵌入式系统开发中的方法研究[J]. 大众科技 2014(10)
    • [14].C语言中指针教学的研究与探讨[J]. 电脑知识与技术 2014(31)
    • [15].浅析C语言中指针的应用[J]. 科技经济市场 2014(08)
    • [16].C语言中指针用法解析[J]. 中国新通信 2014(22)
    • [17].日美新防卫指针指向何方[J]. 中国经贸导刊 2014(36)
    • [18].试析C++中的悬挂指针问题[J]. 电脑编程技巧与维护 2014(24)
    • [19].基于C语言指针教学的研究分析[J]. 才智 2015(07)
    • [20].浅析新版《日美防卫合作指针》[J]. 商 2015(21)
    • [21].动态认时,让指针在孩子心中转起来——“认识钟表”教学实践与思考[J]. 中小学数学(小学版) 2019(12)
    • [22].C语言指针与自增自减运算解析[J]. 数码世界 2020(03)
    • [23].C语言的多级指针案例教学探讨[J]. 人才培养与教学改革-浙江工商大学教学改革论文集 2013(00)
    • [24].指针的奥秘人人能解[J]. 芭莎珠宝 2015(02)
    • [25].指针(节选)[J]. 天涯 2015(04)
    • [26].C语言指针应用[J]. 考试周刊 2014(24)
    • [27].C语言中的指针[J]. 福建电脑 2013(12)
    • [28].C语言中指针与数组的恩怨浅析[J]. 电脑知识与技术 2013(34)
    • [29].浅谈C语言的指针[J]. 神州 2012(32)
    • [30].C语言教学中指针教学问题的研究[J]. 魅力中国 2010(05)

    标签:;  ;  ;  ;  

    嵌入式C程序指针检测研究与系统实现
    下载Doc文档

    猜你喜欢