当前位置:主页 > 科技论文 > 计算机论文 >

嵌入式软件的C语言代码静态检查技术研究

发布时间:2020-04-29 05:37
【摘要】: 嵌入式系统是一种集软件和硬件于一身的特殊计算机系统。随着其在国防、航天、工业控制等若干重要领域的应用越来越广泛,嵌入式软件系统本身的安全性也变得越发重要。C语言是嵌入式软件开发中应用最广的编程语言,因此,对C语言程序的安全性验证成为了保证嵌入式系统安全的关键。 C语言程序的检测方法分为动态和静态两大类。动态检查又称为运行时检查,是实际运行时检测程序的方案,在C程序运行过程中,通过选择适当的测试用例,并对程序的运行状态进行监控以发现程序中的错误。静态检测是指不在计算机上实际执行所检测的程序,而是采用分析代码文本、人工模拟或类似动态分析的方法,借助相关的静态分析工具完成程序源代码的分析与检测。由于嵌入式软件特殊的开发模式,静态检测相对于动态检测具有过程简单,检测代价小的优点,是检测嵌入式软件的理想方法。本文通过对国内外该领域相关研究的学习,总结了C语言中常见的安全隐患,介绍了每种隐患产生的原因。在此基础上,主要介绍了两种检测方法,一种是基于标注的检测模型,用来检测指针和内存引用错误。另一种是通过对C语言编译过程中间结果的分析来检测堆栈溢出错误。其中第二种方法是本文的主要工作和创新点。 指针和内存错误是C语言安全隐患中最常见同时也是最难检测的错误,本文介绍了一种基于源代码中附加标注的静态检测模型,通过标注每个对象的状态来检测内存和指针访问错误。嵌入式系统有限的硬件资源使得堆栈的溢出检测成为了安全保障的一个重要的环节。本文通过C语言的内存模型和函数调用过程,详细介绍了堆栈溢出错误的产生原因,提出了一种基于编译过程中间结果的静态检测方法,并对所涉及的关键技术进行了详细介绍。最后,给出了整个堆栈静态检查器的系统设计和实现,并通过测试证明了该方法的正确性和可用性。
【图文】:

嵌入式应用,环境


式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它是可独立工作的“器件,,。嵌入式系统几乎包括了生活中的所有电器设备,,如图1.1所示。掌上PDA、移动计算设备、电视机顶盒、手机上网、数字电视、多媒体、汽车、微波炉、数字相机、家庭自动化系统、电梯、空调、安全系统、自动售货机、蜂窝式电话、消费电子设备、工业自动化仪表与医疗仪器等都含有嵌入式系统。图1.1嵌入式应用环境

示意图,示意图,堆栈,运行时错误


paee主要优势模型层次上查找bug和引起功能错误的原因,加速了调试短了代码阶段才检查运行时错误的工作量;速检查手写代码编写的函数、客户模块和状态流中的错误以用来确认最终发布的软件是没有错误的,具有高可靠性助模型设计者生成可重用的模型;taekAnalyzer,在堆栈分析方面,还没有太多成熟的工具可用,唯一可以具stackAnalyzer[28]。这款软件,如图2.1所示,可以自动差情况下的堆栈使用情况;分析结果以标注的形式在调用关示。
【学位授予单位】:浙江大学
【学位级别】:硕士
【学位授予年份】:2008
【分类号】:TP368.12

【引证文献】

相关期刊论文 前2条

1 余亚刚;邱征;魏雪菲;;一种可扩展的C代码静态分析方法研究[J];科技风;2012年14期

2 张晓晖;王忠民;王文浪;;嵌入式软件静态测试技术研究[J];西安邮电学院学报;2011年02期

相关硕士学位论文 前2条

1 苏青琴;基于抽象解释的嵌入式程序不变量静态测试研究与实现[D];南京航空航天大学;2012年

2 杨广;控制流提取模型及软件可靠性评价应用研究[D];大连理工大学;2013年



本文编号:2644274

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2644274.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户d20b4***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com