基于GCC实现支持MISRA-C的安全编译器

来源 :2007全国软件及其应用学术会议 | 被引量 : 0次 | 上传用户:fly884531973
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
MISRA-C是基于C89标准抽取出的安全C语言子集,已经逐渐成为安全关键嵌入式领域的软件编码标准。作为在嵌入式领域被广泛使用的编译器,GCC并没有针对任何安全子集规范做系统性的语法和语义检查,不能帮助软件开发者尽早发现软件存在的安全隐患。本文基于GCC设计和实现了支持MISRA-C:2004安全子集规范的安全编译器CCRG-SC。在实现中,将MISRA-C的规则分为6类,提出了每类规则在GCC中的实现方法,并以tag相关规则为例介绍了具体的检测算法。采用CCRG-SC编译嵌入式操作系统μC/OS,能够检测出违反MISRA-C:2004安全子集规范的代码。
其他文献
奧运来临之际,奧运场馆周边燃气管道的安全运行问题日益受到高度关注。本研究受北京燃气集团委托,北京中腐防蚀工程技术有限公司和北京永逸舒克防腐技术公司两公司通力合作,对奧运场馆周边燃气管线情况进行了全面的现场检测及调查,应用北京市埋地燃气管道安全状况评估系统对所调查的管线进行了安全状况评估,得到了各管线的腐蚀破坏、外力破坏和误操作破坏及综合评估等级,以不同颜色在燃气管网图中动态显示。对于每条评估管线给
本研究紧密结合北京市埋地燃气管道腐蚀与控制技术管理水平现状和不断提高的要求,通过数据统计和分析研究,结合有关国际国内标准,建立管网的土壤环境腐蚀性、腐蚀与控制状况、腐蚀控制方案选择设计、标准资料、腐蚀失效案例和项目图形资料的信息管理和专家评价系统,实现了人机对话界面流畅、数据浏览查询添加修改高效、数据库后台支持强大、并留有足够的发展维护空间的管网腐蚀控制管理信息系统。
Rootkit指的是恶意代码作者用来隐藏他们的代码不被发现的工具。本文分析了永久型Rootkit技术特点与Cross-view方法,并将其应用到监控系统中。通过对隐藏行为的发现来判定系统是否已被装入永久型Windows Rootkit。由于使用低层驱动监测、不依赖于特征码,该方法对内核级和将来出现的Rootkit也具有良好的效果。
C#、Java等支持自动内存管理的面向对象程序设计语言需要高效的垃圾收集算法。新型垃圾收集算法已经将虚存管理器和垃圾收集器结合起来。新型垃圾收集算法的设计需要研究人员通过对垃圾收集进行追踪,掌握应用程序中对象的大小、生命周期、分配点以及它们之间的关系等时空局部性规律。E-Merlin追踪算法通过对若干Java字节码的拦截,在JikesRVM虚拟机中有效地实现了对象生命行为的全息追踪。研究人员通过对
无线射频识别(Radio Frequency Identification, RFID)目前受到了全球范围内的广泛关注。研究一种开放、可靠、海量的RFID对象名称服务(Object Name Service, ONS)网络框架是构建RFID基础服务环境的一项重要内容。现有的方法通常采用类似于域名服务(Domain Name Service, DNS)的层次树状结构实现RFID对象名称服务,但这种结
度量技术是保证软件质量的重要手段之一,可以定量地反映软件某一方面的特性。随着嵌入式软件的广泛应用,适用于各种嵌入式汇编语言的度量方法变得十分重要。本文首先对汇编语言已有的度量方法进行了简要的介绍,在此基础上针对汇编语言的自身特点,扩展定义了五种新的度量方法井对其进行详细介绍。之后介绍了一个面向ADSP2106x汇编语言的自动度量工具。最后利用该工具进行了实例分析,发现并改进了一些实际存在的问题,说
SOA描述了一种先进的IT基础设施应用集成模型,ESB作为SOA的一种实现方式,为分布式异构系统的连接和通信提供集成支持。本文分析了分布式异构系统集成的需求和现有ESB实现的功能,设计并实现了一种微内核+扩展组件、分层结构的ESB系统,明确划分了各层的功能,在上下层之间使用抽象数据模型进行通信,降低了ESB协议转换的复杂度;介绍了系统的体系结构和组件模型,并对系统性能进行了测试和分析。系统具有良好
本文介绍了一种基于Unreal引擎的智能游戏平台,并提出了一种基于CA而改进的智能NPC(非玩家角色)结构AC4。AC4的NPC利用从Unreal中获得的游戏信息更新自身的知识库,经过调度器的规划、学习做出动作决策,并通过Unreal提供的接口调用执行动作。该智能游戏平台上的AC4 NPC能够有效地支持、表达游戏环境中的各种智能行为,从而提高了游戏的趣味性和耐玩性。另一方面,我们的智能游戏平台也为
随着分布式事务处理应用规模的不断扩大,越来越多的系统在服务多机冗余部署的基础上,采用负载均衡技术提高系统的可靠性、可扩展性和吞吐率。本文以海量信息并行数据管理平台MDMP为应用背景,设计并实现了遵循CORBA3.0规范的负载均衡服务AFLS。AFLS支持用户定制的负载均衡策略,负载迁移平滑稳定,具有容错性、可扩展性、可移植性的特点。同时,AFLS解决了大规模分布式事务处理环境下传统负载均衡服务自身
在面向对象软件中,常常会出现一些紧密关联的数据项。这些关联数据项之间或多或少还存在一定的语义联系。它们描述的往往是同一个实体(类)的不同属性,或是同一个操作的不同参数。MartinFowler把这种关联数据项称作数据块(Data Clumps)。数据块将一个整体性的描述分散开来,不利于软件的理解和维护。MartinFowler将数据块作为一种设计缺陷(Bad Smells),并建议将数据块合并为一