[发明专利]一种虚拟化嵌入式二进制软件缺陷检测系统有效
申请号: | 201410113492.5 | 申请日: | 2014-03-25 |
公开(公告)号: | CN103955424A | 公开(公告)日: | 2014-07-30 |
发明(设计)人: | 方景龙;张东升;邹雪;王兴起;王大全 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 杜军 |
地址: | 310018 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 虚拟 嵌入式 二进制 软件 缺陷 检测 系统 | ||
技术领域
本发明涉及的是一种软件缺陷检测系统,具体是一种虚拟化嵌入式二进制软件缺陷检测系统。
背景技术
随着嵌入式系统应用的不断深入和硬件技术的不断革新,嵌入式软件的规模和复杂度与日俱增。然而伴随而来的大量的软件缺陷成为隐藏在高度智能化和信息化系统中的一颗定时炸弹,对各类系统造成直接的威胁。因此,保证嵌入式软件的可靠性成为当前面临的严峻挑战。
由于嵌入式系统包含两个方面:硬件部分和软件部分。这就给嵌入式软件的开发与调试带来了巨大的困难和挑战,原因在于既要求开发人员掌握电子专业嵌入式硬件方面的知识,也要求他们掌握计算机专业软件方面的知识。而且传统的嵌入式软件开发环境需要用到很多专门的软件和设备,例如专门的开发板、JTAG口代理软件、ADS1.2编译环境、串口调试器和以太网检测工具等。
同时随着硬件结构越发复杂和软件规模的快速增长,嵌入式应用程序的开发变得缓慢而低效。即使解决了这些问题,嵌入式应用程序的在线开发方式,也给开发者设置了很高的门槛。只有摆脱在线开发方式中对昂贵硬件设备的依赖和降低在线调试方法的复杂性,才能快速、高效地开发出实用的嵌入式应用程序。
发明内容
针对传统的嵌入式二进制软件缺陷检测中存在的问题,本发明提出了一种利用虚拟仿真技术进行嵌入式二进制软件缺陷检测的系统。使用完全虚拟化技术仿真嵌入式硬件平台,然后在仿真的嵌入式平台上使用动态缺陷检测技术对嵌入式二进制软件进行缺陷检测。
本发明是通过以下技术方案实现的:
本发明包括用户管理模块、缺陷检测引擎模块和多体系结构仿真器模块,其中:用户管理模块对整个系统进行控制,指定缺陷检测类型与检测的范围,将原始的二进制文件和指令传送给缺陷检测引擎模块,并根据缺陷检测引擎模块的反馈信息生成缺陷检测报告;缺陷检测引擎模块为嵌入式二进制软件缺陷检测提供特定功能的分析工具,根据用户指定的缺陷检测范围、缺陷检测类型等指令对原始的待检测二进制软件进行插桩操作,得到插桩后的二进制程序中间代码,然后将中间代码传递给多体系结构仿真器模块,并根据多体系结构仿真模块反馈的信息对软件的缺陷进行判别;多体系结构仿真器模块在普通的计算机上仿真出特定的嵌入式平台硬件,接收缺陷检测引擎模块插桩好后的二进制程序中间代码并将其编译成特定的嵌入式平台上的可执行文件,在缺陷检测引擎模块的指导下运行可执行文件,然后将运行的结果反馈给缺陷检测引擎模块。
所述的用户管理模块包括:报告管理模块和图形界面模块。其中:报告管理模块将缺陷引擎模块反馈的信息利用数据可视化技术生成便于用户理解的报告。图形界面模块提供便于交互的图形界面的人机接口,用户通过图形界面模块与检测引擎模块进行交互,指定待测的程序的类型,如ARM的程序,RTOS上的程序等,还可以选择检测的范围,如检测内存溢出、栈溢出、堆溢出、整数溢出等。
所述的缺陷检测引擎模块包括:内存检查模块、函数调用分析模块、缓存分析模块、线程分析模块和堆栈分析模块。其中:内存检查模块对软件内存方面的缺陷检测,比如:堆溢出、栈溢出、不正确的内存释放、内存访问越界、内存泄露和内存覆盖等内存方面的问题。函数调用分析模块用来对软件中的各种函数调用关系进行分析。缓存分析模块模拟程序与机器进行交互的缓存系统和分支预测系统,分析程序的cache命中问题。线程分析模块用来检查C/C++、Fortran程序中使用POSIX pthread原语的线程同步与竞争的问题。堆栈分析模块对程序中使用的堆栈进行衡量,分析程序中堆内存的使用情况。
所述的多体系结构仿真器模块包括:加载器模块、初始化模块、代码cache模块、OS调用仿真模块。其中:加载器模块将Guest Code和Guest Data写入到专门用于暂存客户机映像的内存区中,并且加载运行时软件的代码。初始化模块为代码cache和异常索引表分配内存空间,同时建立起客户机应用程序运行时所需的全部环境。代码cache模块将翻译过的基本代码块暂存,利用缓存的技术,避免重复翻译导致的性能下降。OS调用仿真模块在遇到执行客户机程序中的系统调用时,将其转化为一个或者多个作了修改的本地系统调用进行处理,然后将结果返回给客户机程序。
本发明具有下述的有益效果:
1、本发明使用纯软件的方式进行嵌入式二进制软件的缺陷检测,与传统的嵌入式软件缺陷检测方法相比摆脱了对昂贵的开发板和外部设备的依赖,具有很好的通用性。
2、本发明在多体系结构仿真器模块和缺陷引擎模块的协同工作方面使用了深度代码融合的方法,减少中间步骤,大大提升了缺陷检测的效率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410113492.5/2.html,转载请声明来源钻瓜专利网。