System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种二进制代码相似度检测方法、系统、电子设备及介质技术方案_技高网

一种二进制代码相似度检测方法、系统、电子设备及介质技术方案

技术编号:41058702 阅读:6 留言:0更新日期:2024-04-24 11:09
本发明专利技术涉及二进制代码相似性检测领域,提供了一种二进制代码相似性检测方法、系统、电子设备及介质,通过反汇编处理可以得到二进制代码的控制流图及基本块特征,通过结构相似度分析方式得到结构匹配的控制流子图对,再通过语义相似度分析方式检测结构匹配的控制流子图对在语义层面是否相似,从而筛选掉结构匹配但语义不相似的控制流子图对,获得结构匹配且语义相似的控制流子图对,达到细粒度的二进制代码相似性检测目的,极大提高检测的准确率。

【技术实现步骤摘要】

本专利技术涉及二进制代码相似性检测领域,具体为一种二进制代码相似性检测方法、系统、电子设备及介质。


技术介绍

1、二进制相似性检测是指对两段二进制代码进行比较,以确定它们之间的相似性程度。但是,现有检测方法大多只关注代码整体的相似度,即检测函数级别及以上的代码是否相似。而不能实现细粒度的基本块级别的相似度检测,且现有检测方法也仍旧受到编译平台(如架构、编译器、优化水平)的限制,难以进行跨平台的相似性比较。


技术实现思路

1、本专利技术的目的在于克服现有二进制相似性检测方法不能实现细粒度的基本块级别的检测以及不能实现跨平台检测的问题,提供了一种二进制代码相似度检测方法、系统、电子设备及介质

2、为了实现上述目的,本专利技术提供一种二进制代码相似度检测方法,包括:

3、获取二进制代码,对所述二进制代码进行反汇编处理得到控制流图,所述控制流图包括多个基本块;

4、对不同控制流图中的基本块之间进行结构相似度分析,得到结构匹配的控制流子图对,所述控制流子图对中的每个控制流子图分别对应不同控制流图,且每个控制流子图包括对应控制流图中的至少一个基本块;

5、对所述控制流子图对中对应不同控制流子图的基本块之间进行语义相似度分析,得到所述控制流子图对中控制流子图之间的语义相似度,基于所述控制流子图对的语义相似度判断二进制代码是否相似。

6、作为一种可实施方式,所述结构相似度分析包括出入度、前驱节点和后继节点的匹配分析。

7、作为一种可实施方式,对不同控制流图中的基本块之间进行结构相似度分析,得到结构匹配的控制流子图对的步骤包括:

8、对所述控制流图中的基本块进行断环处理并获取基本块的出入度、前驱节点和后继节点;

9、对不同控制流图中的基本块之间进行出入度匹配,得到出入度匹配的基本块对,对所述基本块对中的基本块进行前继节点和后继节点的匹配,得到包括不同基本块对的控制流子图对。

10、作为一种可实施方式,对所述控制流子图对中对应不同控制流子图的基本块之间进行语义相似度分析,得到所述控制流子图对中控制流子图之间的语义相似度的步骤包括:

11、对所述控制流子图对中对应不同控制流子图的基本块之间进行语义相似度分析,得到对应控制流子图对中每个控制流子图的嵌入向量;基于所述控制流子图对中每个控制流子图的嵌入向量计算对应控制流子图对的语义相似度。

12、作为一种可实施方式,对所述控制流子图对中对应不同控制流子图的基本块之间进行语义相似度分析,得到对应控制流子图对中每个控制流子图的嵌入向量;基于所述控制流子图对中每个控制流子图的嵌入向量计算对应控制流子图对的语义相似度,基于所述控制流子图对的语义相似度判断二进制代码是否相似的步骤包括:

13、基于图匹配网络获取控制流子图对中对应不同控制流子图的基本块,进行对应语义特征的相似度计算,最终输出对应控制流子图对中不同控制流子图的嵌入向量;

14、基于余弦函数度量所述控制流子图对中不同控制流子图的嵌入向量之间的距离,作为对应控制流子图对的语义相似度;其中,当存在一对控制流子图对时,所述控制流子图对的语义相似度为二进制代码的相似度分数;当存在至少两对控制流子图对时,将语义相似度高的控制流子图对的语义相似度作为二进制代码的相似度分数;基于相似度分数判断判断二进制代码是否相似。

15、作为一种可实施方式,获取二进制代码,对所述二进制代码进行反汇编处理得到控制流图的步骤包括:

16、获取二进制代码,进行静态分析,得到所述二进制代码对应的控制流图;基于控制流图中每个基本块的汇编指令和控制流图结构信息抽取对应基本块的语义特征。

17、作为一种可实施方式,所述基本块的语义特征包括字符串常量、数值常数、转移指令数量、调用数量、指令数量、算术指令数量、子代数量和介数。

18、相应的,本专利技术还提供一种二进制代码相似度检测系统,包括:

19、反汇编模块,用于获取二进制代码,对所述二进制代码进行反汇编处理得到控制流图,所述控制流图包括多个基本块;

20、结构相似度分析模块,用于对不同控制流图中的基本块之间进行结构相似度分析,得到结构匹配的控制流子图对,所述控制流子图对中的每个控制流子图分别对应不同控制流图,且每个控制流子图包括对应控制流图中的至少一个基本块;

21、语义相似度分析模块,用于对所述控制流子图对中对应不同控制流子图的基本块之间进行语义相似度分析,得到所述控制流子图对中控制流子图之间的语义相似度,基于所述控制流子图对的语义相似度判断二进制代码是否相似。

22、相应的,本专利技术还提供了一种电子设备,包括:至少一个处理器,与至少一个所述处理器通信连接的存储器;至少一个所述处理器用于读取所述存储器中的程序,用于执行所述方法。

23、相应的,本专利技术还提供了一种计算机可读存储介质,所述介质上存储有指令,当所述指令在计算机上运行时,使得计算机执行所述方法。

24、本专利技术的有益效果:本专利技术提供了一种二进制代码相似性检测方法、系统、电子设备及介质,通过反汇编处理可以实现跨平台代码相似性检测,通过结构相似度分析方式得到结构匹配的控制流子图对,再通过语义相似度分析方式检测结构相似的控制流子图对在语义层面是否相似,从而筛选掉结构匹配但语义不相似的控制流子图对,获得结构匹配且语义相似的控制流子图对,并基于结构匹配且语义相似的控制流子图对的语义相似度判断二进制代码是否相似,使得可以通过判断相似度分数是否超过了设定的阈值,来判断两个控制流子图对是否相似,从而判断两个二进制代码片段是否相似,进而判断两个二进制代码是否相似,而且还可以直接找到相似度高的二进制代码片段,从而达到细粒度的二进制代码相似性检测目的,极大提高检测的准确率。

本文档来自技高网...

【技术保护点】

1.一种二进制代码相似度检测方法,其特征在于,包括:

2.根据权利要求1所述的二进制代码相似度检测方法,其特征在于,所述结构相似度分析包括出入度、前驱节点和后继节点的匹配分析。

3.根据权利要求2所述的二进制代码相似度检测方法,其特征在于,对不同控制流图中的基本块之间进行结构相似度分析,得到结构匹配的控制流子图对的步骤包括:

4.根据权利要求1所述的二进制代码相似度检测方法,其特征在于,对所述控制流子图对中对应不同控制流子图的基本块之间进行语义相似度分析,得到所述控制流子图对中控制流子图之间的语义相似度的步骤包括:

5.根据权利要求4所述的二进制代码相似度检测方法,其特征在于,对所述控制流子图对中对应不同控制流子图的基本块之间进行语义相似度分析,得到对应控制流子图对中每个控制流子图的嵌入向量;基于所述控制流子图对中每个控制流子图的嵌入向量计算对应控制流子图对的语义相似度,基于所述控制流子图对的语义相似度判断二进制代码是否相似的步骤包括:

6.根据权利要求1所述的二进制代码相似性检测方法,其特征在于,获取二进制代码,对所述二进制代码进行反汇编处理得到控制流图的步骤包括:

7.根据权利要求5或6所述的二进制代码相似度检测方法,其特征在于,所述基本块的语义特征包括字符串常量、数值常数、转移指令数量、调用数量、指令数量、算术指令数量、子代数量和介数。

8.一种二进制代码相似度检测系统,其特征在于,包括:

9.一种电子设备,其特征在于,包括:至少一个处理器,与至少一个所述处理器通信连接的存储器;至少一个所述处理器用于读取所述存储器中的程序,用于执行如权利要求1-7中任一项所述方法。

10.一种计算机可读存储介质,其特征在于,所述介质上存储有指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1-7任一项所述的方法。

...

【技术特征摘要】

1.一种二进制代码相似度检测方法,其特征在于,包括:

2.根据权利要求1所述的二进制代码相似度检测方法,其特征在于,所述结构相似度分析包括出入度、前驱节点和后继节点的匹配分析。

3.根据权利要求2所述的二进制代码相似度检测方法,其特征在于,对不同控制流图中的基本块之间进行结构相似度分析,得到结构匹配的控制流子图对的步骤包括:

4.根据权利要求1所述的二进制代码相似度检测方法,其特征在于,对所述控制流子图对中对应不同控制流子图的基本块之间进行语义相似度分析,得到所述控制流子图对中控制流子图之间的语义相似度的步骤包括:

5.根据权利要求4所述的二进制代码相似度检测方法,其特征在于,对所述控制流子图对中对应不同控制流子图的基本块之间进行语义相似度分析,得到对应控制流子图对中每个控制流子图的嵌入向量;基于所述控制流子图对中每个控制流子图的嵌入向量计算对应控制流子图对的语义...

【专利技术属性】
技术研发人员:杨子祺朱依然
申请(专利权)人:浙江大学杭州国际科创中心
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1