[发明专利]一种基于数据流切片的软件识别方法有效
申请号: | 201110169906.2 | 申请日: | 2011-06-22 |
公开(公告)号: | CN102298681A | 公开(公告)日: | 2011-12-28 |
发明(设计)人: | 房鼎益;李磊;汤战勇;陈晓江;雷远晓;郭俊;何路;龚晓庆;王妮;王怀军;高宝健;邢天璋 | 申请(专利权)人: | 西北大学 |
主分类号: | G06F21/22 | 分类号: | G06F21/22 |
代理公司: | 西安恒泰知识产权代理事务所 61216 | 代理人: | 李郑建 |
地址: | 710127 陕西省西安市*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于数据流切片的软件识别方法,该方法采用计算机系统进行软件的识别和病毒检测,该计算机系统至少包括一个特征提取模块,该特征提取模块内有数据依赖提取模块、数据依赖图切片模块、拓扑排序模块和切片规则模块;其中的数据依赖提取模块和一个数据收集模块连接,所述的数据依赖提取模块和数据收集模块有共同的输入(I),特征提取模块和数据收集模块的输出均与相似度比较模块相连;并给出了基于数据流切片的软件特征提取算法SFDS;实现了针对数据流切片的软件特征评判系统;在评判系统上,对提出的算法进行了鲁棒性和置信度实验和分析。 | ||
搜索关键词: | 一种 基于 数据流 切片 软件 识别 方法 | ||
【主权项】:
一种基于数据流切片的软件识别方法,其特征在于,该方法使用计算机系统进行软件识别和病毒特征检测,所述的计算机系统至少包括一个特征提取模块,该特征提取模块内有数据依赖提取模块、切片规则模块、数据依赖图切片模块和拓扑排序模块;其中的数据依赖提取模块和一个数据收集模块连接,所述的数据依赖提取模块和数据收集模块有共同的输入,特征提取模块和数据收集模块的输出均与相似度比较模块相连;其中:数据依赖提取模块,用以提取原始软件本身的数据流及其依赖关系,并将提取出来的数据流用数据依赖图表示;切片规则模块,用于根据数据依赖图产生数据流切片的规则;数据依赖图切片模块,通过使用切片规则模块中的数据流切片规则对数据依赖图进行化简;拓扑排序模块,用拓扑排序算法对数据依赖图切片模块化简的数据依赖图进行拓扑排序,最终形成软件特征文档;数据收集模块,用以在被检测软件运行过程中,收集程序中每条指令执行后寄存器和对应的内存中的数据,形成一个数据文档;相似度比较模块,把拓扑排序模块与数据收集模块分别得到的软件特征文档和数据文档进行相似度比较,然后进行判别;所述的软件识别和病毒特征检测按下列步骤进行:步骤一,根据原始软件,数据依赖提取模块根据运算符提取数据流,根据表达式提取数据间的依赖关系;并将提取出来的数据流用数据依赖图表示;步骤二,数据依赖图切片模块对提取出来的数据流图根据切片规则模块产生的数据流切片规则进行化简;所述数据流切片规则具体如下:(1)由于算法的输出性质,导致软件至少有一个输出,软件所有的指令对数据的操作都围绕着输出数据的返回值或传出值展开,并将与输出数据无依赖关系的数据去除;(2)由于算法有可能需要随机数据参与输出数据的运算,随机数据因为数据不确定,及对它有依赖关系的数据也不确定,不能用来表示软件特征,因此将随机数据节点删除,并对随机数可达节点都删除;(3)由于软件的静态数据的确定性,不随输入数据而变换,而软件攻击的方法可以将静态数据和指令结合,进行相应整体调整,造成获得的数据流之间的差异,所以要去除数据依赖图中的静态数据节点;步骤三,拓扑排序模块按照拓扑排序算法将没有直接或间接数据依赖关系的节点使用集合表示,将有直接或间接数据依赖关系的节点利用向量表示,向量顺序表示节点的先后顺序,形成软件特征,该软件特征以字符串的形式表示;步骤四,数据收集模块使用一些通用的工具,加载软件,在被检测软件运行的过程中收集程序中每条指令执行后寄存器以及对应的内存中的数值,形成一个数据文档,以便在相似度比较模块进行字符串相似度匹配时使用;步骤五,相似度比较模块把拓扑排序模块与数据收集模块中得到的软件特征文档和数据文档进行相似度比较,并用递归算法计算出软件相似度,然后给出相似度判定标准。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北大学,未经西北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110169906.2/,转载请声明来源钻瓜专利网。