当前位置: 首页 > 专利查询>湖南大学专利>正文

基于图Transformers的二进制函数相似性检测方法及系统技术方案

技术编号:38681694 阅读:10 留言:0更新日期:2023-09-02 22:54
本发明专利技术提供一种基于图Transformers的二进制函数相似性检测方法及系统。本发明专利技术方法包括:对二进制函数进行静态分析,获取所述二进制函数的控制流图以及每个节点的汇编指令段;对汇编指令的操作码进行归一化;通过无监督的对比学习方法对CFG中的每个节点进行编码,生成每个节点的特征向量;使用图Transformers模型提取CFG的结构信息,生成图嵌入;将两个二进制函数的特征向量即图嵌入进行连接输入全连接层,得到两个二进制函数相似的概率。本发明专利技术通过利用图Transformers对二进制函数进行相似性检测,不仅能处理复杂的函数结构,还能适应大规模的二进制代码库,具有较高的准确率和效率及可扩展性。效率及可扩展性。效率及可扩展性。

【技术实现步骤摘要】
基于图Transformers的二进制函数相似性检测方法及系统


[0001]本专利技术涉及信息安全
,具体涉及一种基于图Transformers的二进制函数相似性检测方法及系统。

技术介绍

[0002]二进制代码分析是许多安全应用,如恶意软件检测、二进制漏洞发现和软件版权保护等的重要组成部分。为了从二进制代码中提取有意义的信息,研究者通常会将二进制代码的函数转化为图结构,如控制流图(CFG)。然后,他们使用图匹配或图同构算法来比较两个函数是否相似。
[0003]如:中国专利文献CN202011367342.9公开一种基于图自动编码器的二进制相似性检测方法,包括将待比较的两个二进制函数进行预处理;使用反汇编工具及其提供的接口,得到两个二进制函数内部基本块之间的控制依赖关系;记录两个二进制函数内部的控制流图,并提取其节点的数字化特征,并关注了函数之间的调用关系,在函数入口基本块中调用该函数的其他函数的特征;使用图自动编码器GAE对得到的控制流图进行编码,得到描述图结构的嵌入向量;将两个二进制函数的表征图结构的嵌入向量和节点的数字化特征信息进行融合后,通过损失函数计算训练模型;训练好的模型可以判断给定的两个二进制函数是否相似。该方案主要通过最大程度保留函数内部的语义结构特征和节点语义特征,提高相似性比较的精度。
[0004]中国专利文献CN202110690580.1公开一种智能合约二进制函数的相似性分析方法,包括反编译的字节码,生成EVM指令及相应的参数;根据反编译后的EVM指令重建控制流图CFG;将一个合约的CFG划分为若干二进制函数,并且为CFG中的边确定时序关系;提取特征值和图结构;设计了一种基于时序聚合图结构的模型,比较聚合后的图结构可以得出两个二进制函数的相似性。该方案其主要针对智能合约二进制函数的相似性分析,通过直接对合约的字节码进行研究,能处理大部分缺少源代码的合约。
[0005]又如:中国专利文献CN202110607066.7公开一种融合影响因子的二进制函数相似性检测方法,首先对两个二进制函数进行预处理,得到两个二进制函数的控制流程图(CFG1,CFG2);然后对CFG中的每个基本块进行特征提取,将其表示成特征向量,生成对应的属性控制流图(ACFG1,ACFG2);接下来将两个函数的属性控制流程图ACFG1,ACFG2输入到两个完全相同的图嵌入网络中,转换成对应的高维向量。通过最小化目标函数训练图嵌入网络中的参数,计算两个高维向量的余弦距离,输出两个二进制函数的相似度。该方案主要为了解决基于图嵌入的二进制函数相似性检测方法中由于忽略后继结点和邻居结点对于顶点的不同影响而导致的信息损失问题。
[0006]然而,以上现有的二进制函数相似性检测方法都不能有效地处理函数的复杂性和大规模的二进制代码库以及过度依赖数据集,缺乏可扩展性。

技术实现思路

[0007]本专利技术要解决的技术问题时:针对现有技术上的不足,提供一种基于图Transformers的二进制函数相似性检测方法及系统。通过图Transformers模型提取CFG的结构信息,生成图嵌入,实现二进制函数的相似性检测,从而应对处理复杂的函数结构,还能适应大规模的二进制代码库,具有较高的检测准确率和效率以及可扩展性。
[0008]为了解决上述技术问题,本专利技术采用如下技术方案:
[0009]第一方面,本专利技术提供一种基于图Transformers的二进制函数相似性检测方法,包括如下步骤:
[0010]S1. 获取待检测的两个二进制函数,并分别对获取的二进制函数进行静态分析,获取所述二进制函数的控制流图以及每个节点的汇编指令段;
[0011]S2. 对所述汇编指令段中汇编指令的操作码进行归一化处理;
[0012]S3. 通过无监督的对比学习方法对所述控制流图中的每个节点进行编码,生成每个节点的特征向量;
[0013]S4. 使用图 Transformers模型提取所述控制流图的结构信息,聚合节点的特征信息和控制流图的结构信息,生成图嵌入;
[0014]S5. 将两个二进制函数的特征向量,进行连接输入全连接层,得到两个二进制函数相似的概率。
[0015]进一步地,步骤S2中汇编指令的操作码的归一化处理具体包括:
[0016]将所有内存地址替换为“mem”;
[0017]将所有通用寄存器重命名为“reg{size}”,{size}为操作码操作的字节数;
[0018]将所有的数值常量替换为“num”;
[0019]将所有的字符串替换为“str”;
[0020]将所有非系统函数的函数名和非库函数被替换为“fun”。
[0021]进一步地,步骤S3对所述控制流图中每个节点进行编码,提取指令的语义信息,并生成节点的特征向量,具体如下:
[0022]S301.获取控制流图中的节点的汇编指令段 ,其中,表示中第个汇编指令段,m表示汇编指令段的数量;
[0023]S302.然后通过对应用不同的独立采样的丢弃掩码为其创建一个正例;具体操作是,通过编码器编码节点特征时,在全连接层上使用不同的丢弃掩码以及注意力概率将相同的输入输入编码器两次,得到两个具有不同丢弃掩码和的的嵌入;即: , ;
[0024]其中,、是两个不同的丢弃的随机掩码,、分别为丢弃掩码的的嵌入,为节点编码器;
[0025]具有
ꢀꢀ
对的小批量的训练目标为:;
[0026]其中,表示第个汇编指令段的损失值,表示小批量中的索引,为丢弃掩码的的嵌入,为温度超参数,为余弦相似度函数。
[0027]进一步地,步骤S4具体是指:将图数据输入Transformers模型中,并添加编码信息,聚合节点的特征向量以及捕获图的结构信息,最终输出图的嵌入即图的特征向量。
[0028]更进一步地,步骤S4中添加编码信息的方法包括:
[0029]一种方案,在Transformers模型的输入中添加新的位置编码以便帮助编码距离感知信息;
[0030]或者,一种方案,在Transformers模型的自注意力模块模块中添加新的空间编码作为偏差项,以便准确地捕获图中的空间依赖性;
[0031]或者,同时采用上述在Transformers模型的输入中添加新的位置编码和在Transformers模型的自注意力模块模块中添加新的空间编码作为偏差项的两种方法添加编码信息。
[0032]更进一步地,在Transformers模型的输入中添加新的位置编码的方法是使用拉普拉斯特征向量为任意图编码节点位置信息,具体如下:
[0033](1)预先计算数据集中所有图的拉普拉斯特征向量,拉普拉斯特征向量是通过图的拉普拉斯矩阵的因式分解定义的:;
[0034]其中,为单位矩阵,为图的邻接矩阵,为度矩阵,、分别对应为拉普拉斯矩阵的特征值和特征向量,表示图的拉普拉斯矩阵;
[0035](2)对输入数据添加位置编码,使用 表示节点本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于图Transformers的二进制函数相似性检测方法,其特征在于,包括如下步骤:S1. 获取待检测的两个二进制函数,并分别对获取的二进制函数进行静态分析,获取所述二进制函数的控制流图以及每个节点的汇编指令段;S2. 对所述汇编指令段中汇编指令的操作码进行归一化处理;S3. 通过无监督的对比学习方法对所述控制流图中的每个节点进行编码,生成每个节点的特征向量;S4. 使用图 Transformers模型提取所述控制流图的结构信息,聚合节点的特征信息和控制流图的结构信息,生成图嵌入;S5. 将两个二进制函数的特征向量,进行连接输入全连接层,得到两个二进制函数相似的概率。2.根据权利要求1所述的基于图Transformers的二进制函数相似性检测方法,其特征在于,步骤S2中汇编指令的操作码的归一化处理具体包括:将所有内存地址替换为“mem”;将所有通用寄存器重命名为“reg{size}”,{size}为操作码操作的字节数;将所有的数值常量替换为“num”;将所有的字符串替换为“str”;将所有非系统函数的函数名和非库函数被替换为“fun”。3.根据权利要求1所述的基于图Transformers的二进制函数相似性检测方法,其特征在于,步骤S3对所述控制流图中每个节点进行编码,提取指令的语义信息,并生成节点的特征向量,具体如下:S301.获取控制流图中的节点的汇编指令段 ,其中,表示中第个汇编指令段,m表示汇编指令段的数量;S302.然后通过对应用不同的独立采样的丢弃掩码为其创建一个正例;具体操作是,通过编码器编码节点特征时,在全连接层上使用不同的丢弃掩码以及注意力概率将相同的输入输入编码器两次,得到两个具有不同丢弃掩码和的的嵌入;即: , ;其中,、是两个不同的丢弃的随机掩码,、分别为丢弃掩码的的嵌入,为节点编码器;具有
ꢀꢀ
对的小批量的训练目标为:;其中,表示第个汇编指令段的损失值,表示小批量中的索引,为丢弃掩码的的嵌入,为温度超参数,为余弦相似度函数。4.根据权利要求1所述的基于图Transformers的二进制函数相似性检测方法,其特征在于,步骤S4具体是指:将图数据输入Transformers模型中,并添加编码信息,聚合节点的
特征向量以及捕获图的结构信息,最终输出图的嵌入即图的特征向量。5.根据权利要求4所述的基于图Transformers的二进制函数相似性检测方法,其特征在于,步骤S4中添加编码信息的方法包括:在Transformers模型的输入中添加新的位置编码以便帮助编码距离感知信息,和/或在Transformers模型的自注意力模块模块中添加新的空间编码作为偏差项,以便准确地捕获图中的空间依赖性。6.根据权利要求5所述的基于图Transformers的二进制函数相似性检测方法,其特征在于,在Transformers模型的输入中添加新的位置编码的方法是使用拉普拉斯特征向量为任意图编码节点位置信息,具体如下:(1)预先计算数据集中所有图的拉普拉斯特征向量,拉普拉斯特征向量是通过图的拉普拉斯矩阵的因式分解定义的:;其中,为单位矩阵,为图的邻接矩阵,为度矩阵,、分别对应为拉普拉斯矩阵的特征值和特征向量,表示图的拉普拉斯矩阵;(2)对输入数...

【专利技术属性】
技术研发人员:张云刘玉玲
申请(专利权)人:湖南大学
类型:发明
国别省市:

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

1