[发明专利]一种基于错误传播分析的SDC脆弱指令识别方法有效
申请号: | 201410234116.1 | 申请日: | 2014-05-29 |
公开(公告)号: | CN103984632A | 公开(公告)日: | 2014-08-13 |
发明(设计)人: | 汪芸;马骏驰;李凯 | 申请(专利权)人: | 东南大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 江苏永衡昭辉律师事务所 32250 | 代理人: | 王斌 |
地址: | 210096*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于错误传播分析的SDC脆弱指令识别方法,包括如下步骤:首先对关键指令进行错误注入验证所有关键指令的SDC脆弱性,然后利用推断算法对非关键指令进行SDC脆弱性判定。本发明在保证较高准确率和覆盖率的前提下,显著减少了注入错误数。 | ||
搜索关键词: | 一种 基于 错误 传播 分析 sdc 脆弱 指令 识别 方法 | ||
【主权项】:
一种基于错误传播分析的SDC脆弱指令识别方法,所述的识别方法包括如下步骤:步骤一:加载运行目标测试程序,所述目标测试程序由关键指令和非关键指令组成;所述关键指令指写函数间交互数据的指令,所述非关键指令指关键指令以外的所有指令;步骤二:通过错误注入实验验证所有关键指令的SDC脆弱性首先根据关键指令的定义找出关键指令,然后通过修改指令目的操作数的一位对关键指令实施错误注入,如果得到的结果是SDC,则将该关键指令加入SDC脆弱关键指令集合;步骤三:识别非关键指令中的SDC脆弱指令首先采用等价类注入的方法对非关键指令进行采样,将采样得到的指令添加进注入计划表,然后通过修改目的操作数的一位对指令实施错误注入,如果得到的结果是SDC,则运行推断算法,将推测出的SDC脆弱指令集合从注入计划表中删去,并将推测出的SDC脆弱指令集合加入SDC脆弱非关键指令集合;所述的推断算法的输入分别为:错误注入中指令写入数据的记录、正常运行时指令写入数据的记录和由步骤二得到的SDC脆弱关键指令集合;且所述推断算法分为以下三个阶段:(a)比较阶段:对错误注入实验的第j条指令Ij的写入数据与正常运行时相同的指令I′j的写入数据进行比较,若写入数据是不同的,则判定指令Ij发生了错误,将该指令标记为错误,否则将该指令标记为正确;如果Ij属于SDC脆弱关键指令集合则进入推测阶段;否则进入结束阶段;(b)推测阶段:搜索Ij的祖先节点,若祖先节点被标记为正确,则结束该分支的搜索;若祖先节点被标记为错误,且祖先节点只有一个被标记为错误的SDC脆弱关键指令子孙节点Ij,则将该祖先节点加入推测出的SDC脆弱指令集合;(c)结束阶段:如果Ij已经是最后一条指令,则结束,否则转到Ij的下一条指令;如果Ij是条件跳转指令,判断是否与正常运行时选择了同一分支,若选择了不同分支,则发生了错误的跳转;为了保持Ij和I′j是同一指令对应的指令实例,Ij和I′j均跳至Ij所在函数的最后一条指令。步骤四:将步骤二获得的SDC脆弱关键指令集合和步骤三获得的SDC脆弱非关键指令集合合并得到了整个SDC脆弱指令集合。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410234116.1/,转载请声明来源钻瓜专利网。
- 上一篇:冷水自循环渔船用制冰机
- 下一篇:农作物秸秆收割台