嵌入式二进制软件缺陷检测系统的仿真环境支持
【摘要】:嵌入式行业飞快发展,成为当前最热门最有发展前途的IT应用领域之一。本文解决嵌入式开发过程中遇到的部分难题。主要是利用虚拟仿真和缺陷检测两大加快嵌入式软件开发的技术,建立了一个完整的系统,深化了一种利用虚拟仿真环境来进行嵌入式软件开发的开发模式。从硬件模拟,到软件诸如内存泄露、变量未初始化等软件缺陷的检测,都包括在系统之内,并且贯穿嵌入式软件开发的整个过程之中。
基于二进制代码的嵌入式软件缺陷检测系统是一套针对嵌入式二进制代码的缺陷检测系统,该检测系统主要分为虚拟仿真环境、缺陷检测引擎和缺陷报告生成三个部分,首先对待测程序的二进制代码进行指令分析。然后对其进行插桩,将相应的功能代码插入程序中。接着收集程序在虚拟化仿真环境中的执行信息。最后形成一份嵌入式软件的缺陷报告。
本论文所做的主要工作和成果可总结为下面几点。
1、深入研究了虚拟化技术的工作原理和应用场景,探讨了基于仿真环境嵌入式软件缺陷检测的可行性。
2、分析了现有开源软件的源代码和工作原理,实现了一个多体系结构的仿真器Emu。虽然目前只支持嵌入式ARM系列的开发平台,但由于采用了开放式的可扩展的开发方式,后期不断地完善支持的硬件平台和体系结构。
3、对缺陷检测的相关技术进行研究,提出了三种方案对缺陷检测引擎的进行仿真支持,方案各有优劣,并对其进行可行性及通用性验证。它们分别是基于驻留程序的仿真支持方案、基于网络通信的仿真支持方案和基于深度融合的仿真支持方案。最后利用三种方案设计实现了一个支持缺陷检测的原型系统。
4、使用C、C++语言设计和编写了完整的嵌入式系统仿真环境。通过仿真的支持,缺陷检测分析工具能够检测内存泄露缺陷、未初始化内存缺陷、栈溢出缺陷以及整数溢出缺陷等嵌入式软件常见的缺陷。
【学位授予单位】:杭州电子科技大学
【学位级别】:硕士
【学位授予年份】:2014
【分类号】:TP311.53