[发明专利]一种基于SimHash算法的二进制文件快速比较方法在审
申请号: | 201611009372.6 | 申请日: | 2016-11-16 |
公开(公告)号: | CN106649218A | 公开(公告)日: | 2017-05-10 |
发明(设计)人: | 唐勇;俞昕;王宝生;王毅;喻波;解炜;李根 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F17/22 | 分类号: | G06F17/22 |
代理公司: | 湖南兆弘专利事务所(普通合伙)43008 | 代理人: | 周长清 |
地址: | 410073 湖南省长沙市砚瓦池正*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 simhash 算法 二进制文件 快速 比较 方法 | ||
1.一种基于SimHash算法的二进制文件比较方法,其特征在于,步骤为:
S1:利用IDA Pro的扩展功能,编写插件对二进制文件进行信息提取;所述信息包括二进制文件的汇编指令序列、控制流图、调用流图信息;
S2:对提取到的二进制文件信息进行预处理;
S3:对预处理过后的二进制文件信息进行关键字定义;
S4:对提取到的关键字进行权重衡量;
S5:利用提取到的关键字及其权重,计算函数的SimHash指纹特征,并对指纹特征进行存储;
S6:基于查询后的相似结果,再采用基于结构化匹配的经典算法进行精确匹配。
2.根据权利要求1所述的基于SimHash算法的二进制文件比较方法,其特征在于,在步骤S3中,对关键字的定义考虑:单个指令、基本块、基本路径;取单个指令的操作码和操作数作为关键字,用SPP算法计算每个基本块的SPP值,基本路径的SPP值作为关键字。
3.根据权利要求1所述的基于SimHash算法的二进制文件比较方法,其特征在于,在步骤S4中,关键字重要性程度为:基本路径>基本块>单个指令;对于单个指令而言,其操作码和操作数的权重为1;于基本块而言,其权重为其SPP值;对于基本路径而言,其权重为该路径所经过的指令数目。
4.根据权利要求1或2或3所述的基于SimHash算法的二进制文件比较方法,其特征在于,在步骤S3的详细流程为:
S301:对控制流图进行分割块合并;
S302:对指令序列进行寄存器模糊化处理;
S303:对指令序列中的地址信息进行重定向。
5.根据权利要求4所述的基于SimHash算法的二进制文件比较方法,其特征在于,在步骤S301中,CFG中当一个基本块只有一个子块,且该子块也只有一个父块时,这两个基本块就被定义为分割块;假设函数F中所有基本块的集合为B,p(a)为CFG中基本块a的父节点的集合,c(a)为CFG中基本块a的子节点的集合,e(a,b)为CFG中以a为起点,b为终点的一条边,流程为:
i.遍历集合B中的基本块;如果已遍历完,则跳转到步骤v;否则,从集合B中取基本块b,执行步骤ii;
ii.如果基本块b的子节点集合c(b)的大小为1,执行步骤iii,否则返回i;
iii.令a=c(b),如果基本块a的父节点集合p(a)的大小为1,执行步骤iv,否则返回i;
iv.将b和a合并为新的基本块c;同时,移除边e(b,a),{e(x,b)|x∈p(b)}和{e(a,x)|x∈c(a)};并建立新的边{e(x,c)|x∈p(b)}和{e(c,x)|x∈c(a)};同时将基本块c加入集合B中,返回步骤i;
v.结束。
6.根据权利要求5所述的基于SimHash算法的二进制文件比较方法,其特征在于,在步骤S303的流程为:
i.对于代码段跳转指令而言,在提取特征值时忽略指令后的偏移地址,选择目的地址块的哈希值作为特征;
ii.对于数据段的数据指针,提取该指针所索引的数据值的opcode作为特征。
7.根据权利要求1或2或3所述的基于SimHash算法的二进制文件比较方法,其特征在于,所述步骤S5的流程为:
S501:函数的SimHash指纹特征计算;
S502:函数的SimHash指纹特征存储;
S503:函数的SimHash指纹特征查询。
8.根据权利要求7所述的基于SimHash算法的二进制文件比较方法,其特征在于,所述步骤S501的流程为:
i.设一个32维的向量V和一个32位的二进制数S,并将它们初始化为0;
ii.设关键字集合为K,s(k)={hash(k)|k∈K}为关键字k的长度为32位的哈希值,v(k)为关键字k的权重;
iii.对于每一个关键字k∈K,for(i=0to 31):如果s(k)的第i位为1,则V的第i个元素加上v(k),否则减去v(k);
iv.对所有的关键字按照步骤iii进行操作后,如果V的第i个元素大于0,则将S的第i位置为1,否则为0;最后的输出S即为函数的指纹特征。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611009372.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:布艺沙发(一人位61016)
- 下一篇:布艺沙发(二人位61016)