[发明专利]一种控制流错误检测方法在审
申请号: | 201410756465.X | 申请日: | 2014-12-10 |
公开(公告)号: | CN104461886A | 公开(公告)日: | 2015-03-25 |
发明(设计)人: | 寇义民;李春;刘宽俊;潘乐;尚华;于小龙;商明森 | 申请(专利权)人: | 深圳航天东方红海特卫星有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F11/10 |
代理公司: | 深圳市科吉华烽知识产权事务所(普通合伙) 44248 | 代理人: | 张立娟 |
地址: | 518057 广东省深圳市南山区科*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种控制流错误检测方法,预先根据调用路径集合生成各模块校验码集合,运行时动态生成软件校验码,与当前模块校验码集合中各元素进行比对。本发明的软件控制流异常检测方法,可以有效检测和处理航天软件因软件代码区单粒子翻转、指令计数器异常等造成的控制流异常问题,实现简单且不需要额外硬件支持。本发明实现方法简单易行,几乎不需要任何额外的软硬件支持。可有效检测软件模块一级的控制流异常。 | ||
搜索关键词: | 一种 控制 错误 检测 方法 | ||
【主权项】:
一种控制流错误检测方法,其特征在于,步骤如下:步骤1:列出所有软件模块之间的扇入、扇出关系,生成调用关系图,其中F1为最顶层模块,它代表软件的程序入口,被上一级软件模块调用称为扇入模块,调用下一级软件模块称为扇出模块;步骤2:对每个软件模块编制相应数字签名,用S来表示,同一软件内各模块的数字签名不可重复;步骤3:对每个模块自底向上遍历所有扇入模块,获得由最顶层模块到该模块的所有可能的调用路径,从而形成该模块的调用路径集合;步骤4:利用最顶层模块到本模块调用路径上各模块的数字签名,采用统一规则函数H生成各模块校验码集合并进行预存储,校验码集合中的每个校验码与之前形成的校验路径集合中的各路径一一对应;规则函数H满足如下性质:性质1H(H(Si,Sj),Sk)=H(Si,Sj,Sk);步骤5:编写代码时,需将本模块当前校验码传入下一级调用模块,并在每个模块头部进行校验码计算和比对,如果当前校验码计算值不在预先存储的本模块校验码集合之内,则调用异常处理;一旦发生校验码计算值不在本模块校验码集合之内的情况时,则发现软件控制流异常,此时可执行异常处理程序。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳航天东方红海特卫星有限公司,未经深圳航天东方红海特卫星有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410756465.X/,转载请声明来源钻瓜专利网。