System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机安全,具体涉及一种注意力游走核的二进制程序相似性检测方法及系统。
技术介绍
1、二进制代码相似性检测是指通过比较两个二进制文件之间的特征的相似程度来判断两者是否相似,其在安全领域有广泛的应用,例如恶意软件检测与分析、漏洞检测与修复、知识产权保护、补丁匹配与版本跟踪等。
2、目前出现了很多的二进制代码相似性检测方法,为了从二进制代码中提取有意义的信息,通常将二进制代码转化为图结构,如过程间控制流图(以下简称“icfg”)。接着,使用图神经网络算法比较两个程序的相似性。
3、中国专利文献cn113254934a公开一种基于图匹配网络的二进制代码相似性检测方法及系统。该方法包括获取待测程序对,对其中的待测程序反汇编获取过程间控制流图icfg及其指令;分别针对待测程序的过程间控制流图icfg获取其中基本块的初始特征嵌入;通过图匹配神经网络得到待测程序对的过程间控制流图icfg的最终嵌入hg1和hg2;在向量空间中计算待测程序对的过程间控制流图icfg的最终嵌入hg1和hg2之间相似性作为待测程序对的相似性检测结果。
4、中国专利文献cn116541273a公开一种基于图注意力的二进制代码相似性检测方法及系统。该方法通过获取二进制代码的属性控制流图,输入预训练的注意力机制中,得到节点间注意力相关系数;对每个注意力相关系数进行归一化,并利用leakyrelu函数激活,得到节点间权重系数;并根据节点间的权重系数生成新的节点特征;从而根据新的节点特征判断二进制代码的相似性。该方法采用注意力
5、然而,图神经网络算法通常应用某种置换不变的读出图结构的顶点表示,以生成整个图的表示,但这种方法往往忽略了顶点之间的相互作用。因此,图结构与特征信息的结合透明度不足,导致现有的相似性检测算法无法有效处理大规模的二进制程序,且效率低、资源消耗高。
6、中国专利文献cn116700781a提出一种基于可微随机游走核和神经网络的二进制代码相似性检测方法及系统。该方法包括获取待检测二进制代码对,将待检测二进制代码对进行反编译,获得其控制流程图;利用核函数提取待检测二进制代码流程图的结构特征;通过神经网络对待检测二进制代码的控制流程图的结构特征进行编码,并得到对应的结构嵌入和利用二进制代码对的控制流程图的结构信息嵌入和的相似性作为待检测二进制代码的相似性结果。该方案虽然提出一种通过图核和神经网络集合的方法来提取二进制代码控制流程图的结构信息进而判断待检测二进制代码相似性的方法,一定程度上能捕捉到隐藏在二进制代码中的控制依赖。但是该方案基于可微随机游走核,其采用的是随机游走的策略,通过随机初始化生成一定数量的子图并与原图进行直积来捕捉结构特征;可微随机游走核侧重于在控制流程图上进行随机游走,通过神经网络对提取的子图特征进行编码,并使用特定的度量方式来计算图的相似性;而且该方法不能感知和提取节点的语义信息,从而能够更全面地捕捉二进制程序中的复杂语义特征。
技术实现思路
1、本专利技术要解决的技术问题是,针对现有技术上的不足,提供一种基于注意力游走核的二进制程序相似性检测方法及系统。通过结合图核和神经网络提取过程间控制流图(icfg)的结构信息,生成图的特征矩阵,实现二进制程序的相似性检测。这种方法能够处理复杂的函数结构,提高检测效率,并具有较高的检测准确率。
2、为了解决上述技术问题,本专利技术采用如下技术方案:
3、第一方面,本专利技术提供一种基于注意力游走核的二进制程序相似性检测方法,包括如下步骤:
4、s1、对待检测的二进制程序进行静态分析,获取所述二进制程序的过程间控制流图(icfg);通常所述icfg包括多个节点与边,每个节点表示二进制程序中的一个基本块,每条边表示基本块之间的跳转或函数调用。
5、s2、利用预训练的生成型预训练变换模型(简称“gpt”)生成所述icfg中每个节点的特征向量。
6、s3、基于所生成的节点的特征向量,利用注意力游走图核方法构建icfg的特征矩阵。
7、s4、将所构建的特征矩阵进行扁平化处理。
8、s5、将扁平化后的特征矩阵输入到全连接神经网络中,计算目标二进制程序与参考二进制程序之间的相似性得分,判断相似性。
9、进一步地,步骤s2具体包括:
10、s201、对icfg中的每个节点(即基本块)使用汇编指令作为文本描述,所述汇编指令包括操作码和操作数。
11、如假设节点包含指令序列,指令表示为,则节点的文本描述为:
12、 ;
13、式中,表示节点对应的汇编指令,表示汇编指令的操作码,表示汇编指令的操作数,n表示节点中汇编指令的数量。
14、s202、对节点中的汇编指令进行归一化,将操作数值,内存地址,寄存器以及非系统函数名归一化为对应的通用标识符。
15、s203、将每个节点的文本表示输入到预训练的gpt模型中,生成节点的特征向量。
16、进一步地,步骤s203每个节点的文本表示输入到预训练的gpt模型中,生成节点的特征向量的过程具体如下:
17、(1)将节点的文本表示输入到分词器中,用于将输入的汇编指令字符串转换为token id序列,即生成gpt模型的输入序列;
18、(2)将输入序列输入到gpt模型中,生成序列的特征表示,具体过程如下:
19、所述gpt模型包括嵌入层、位置编码器和多层transformer编码器;
20、首先将步骤(1)生产的输入序列输入gpt模型的嵌入层转换为嵌入表示;
21、然后将所述输入序列的位置信息输入到gpt模型的位置编码器中得到的位置编码,并添加到所述嵌入表示中得到包含位置编码的嵌入表示,用以保留序列中每个位置的信息;
22、接下来,将包含位置编码的嵌入表示输入到gpt模型的多层transformer编码器,每层的输出作为下一层的输入;所述transformer编码器包含两个子层,即:多头自注意力机制和前反馈神经网络;所述多头自注意力机制用于计算输入序列中每个位置的注意力权重,并生成加权表示和;所述前反馈神经网络由两个线性变换和一个激活函数组成;
23、最后,输入序列的特征表示为gpt模型的最后一层的输出,即由每个词的隐层表示构成的表示矩阵;
24、(3)采用平均池化的方法对步骤(2)输出的序列的特征矩阵进行聚合,将每个节点的特征向量表示为固定长度的向量,即得每个节点的特征向量。
25、具体地,s203的步骤(1)的计算过程表示为如下:
26、将节点 的文本表示 输入到分词器中,生成gpt模型的输入序列,表示为如下:
27、;
28、式中,为分词器函数,用于将输入的汇编指令字符串转换为token id序列。
...【技术保护点】
1.一种基于注意力游走核的二进制程序相似性检测方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的基于注意力游走核的二进制程序相似性检测方法,其特征在于,步骤S2具体包括:
3.根据权利要求2所述的基于注意力游走核的二进制程序相似性检测方法,其特征在于,步骤S203每个节点的文本表示输入到预训练的GPT模型中,生成节点的特征向量的过程具体如下:
4.根据权利要求1所述的基于注意力游走核的二进制程序相似性检测方法,其特征在于,
5.根据权利要求4所述的基于注意力游走核的二进制程序相似性检测方法,其特征在于,步骤S3的过程具体如下:
6.根据权利要求1所述的基于注意力游走核的二进制程序相似性检测方法,其特征在于,步骤S4将特征矩阵进行扁平化处理的过程具体如下:
7.根据权利要求1所述的基于注意力游走核的二进制程序相似性检测方法,其特征在于,
8.根据权利要求1所述的基于注意力游走核的二进制程序相似性检测方法,其特征在于,
9.根据权利要求1所述的基于注意力游走核的二进制程序相似性检测
10.一种基于注意力游走核的二进制程序相似性检测系统,其特征在于,具体包括:数据处理模块、语义感知模块、结构感知模块、相似性判断模块,其中:
...【技术特征摘要】
1.一种基于注意力游走核的二进制程序相似性检测方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的基于注意力游走核的二进制程序相似性检测方法,其特征在于,步骤s2具体包括:
3.根据权利要求2所述的基于注意力游走核的二进制程序相似性检测方法,其特征在于,步骤s203每个节点的文本表示输入到预训练的gpt模型中,生成节点的特征向量的过程具体如下:
4.根据权利要求1所述的基于注意力游走核的二进制程序相似性检测方法,其特征在于,
5.根据权利要求4所述的基于注意力游走核的二进制程序相似性检测方法,其特征在于,步骤s3的过程具体如下:
6.根据权利要求1所述的基于注意力游走...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。