CN110688150B - 一种基于张量运算的二进制文件代码搜索检测方法及系统 - Google Patents

一种基于张量运算的二进制文件代码搜索检测方法及系统 Download PDF

Info

Publication number
CN110688150B
CN110688150B CN201910828746.4A CN201910828746A CN110688150B CN 110688150 B CN110688150 B CN 110688150B CN 201910828746 A CN201910828746 A CN 201910828746A CN 110688150 B CN110688150 B CN 110688150B
Authority
CN
China
Prior art keywords
function
matrix
control flow
tensor
binary file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910828746.4A
Other languages
English (en)
Other versions
CN110688150A (zh
Inventor
付才
杨佳
韩兰胜
刘铭
刘小洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201910828746.4A priority Critical patent/CN110688150B/zh
Publication of CN110688150A publication Critical patent/CN110688150A/zh
Application granted granted Critical
Publication of CN110688150B publication Critical patent/CN110688150B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • G06F8/751Code clone detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/38Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于张量运算的二进制文件代码搜索检测方法及系统,属于网络空间安全领域。包括:提取各二进制文件的图空间特征;基于图嵌入算法,将各图空间特征编码为对应函数特征矩阵;基于张量奇异值分解算法,分解样本库所有二进制文件的函数特征矩阵构成的张量模型,根据该张量模型的压缩单位矩阵,得到压缩后的各二进制文件的函数特征矩阵;将待检二进制文件的压缩后的特征矩阵和样本库进行比对,得到代码搜索克隆检测结果。将包含所有特征空间嵌入到更小的空间,用更精简的特征表示二进制函数特征,同时处理所有的特征数据,提取相似函数的相关信息以及更精简的函数特征,大大提高了二进制函数检测的效率。

Description

一种基于张量运算的二进制文件代码搜索检测方法及系统
技术领域
本发明属于网络空间安全领域,更具体地,涉及一种基于张量运算的二进制文件代码搜索检测方法及系统。
背景技术
为了更高效地准确地进行二进制函数的克隆检测和恶意检测,需要对非结构化并且跨平台,不同优化编译等级的二进制代码进行数据精细度特征提取和高维大量数据处理。如今神经网络深度学习运用tensor运算进行大量的高维的数据的处理。基于tensor运算的SVD压缩分解算法能够高效地处理高维数据的降维,并且当前二进制文件的特征提取方案研究也非常热门,例如:基于二进制语义分析的二进制函数恶意分析,基于字符串统计的二进制函数克隆分析,以及基于token、hash等静态的二进制函数克隆分析的特征方法。
然而,现有二进制克隆检测方案存在四个问题:第一,对二进制函数多样性编译环境缺乏有效的感知机制,二进制函数克隆函数存在编译条件多样化的问题,同一源码可能因为编译条件等级或者编译平台不同等导致二进制函数不同,需要能够对二进制函数的编译条件具有感知能力;第二,对大规模二进制函数的有效特征提炼缺乏高效方法,当前二进制函数程序已经达到百万级别,一个二进制程序又包含几百到上千个汇编函数,同时二进制程序每天都在不停产生,从数量上讲已经非常庞大;第三,对二进制函数克隆检测精细度特征数据库的更新方法缺乏高效快速的方法,当前的二进制函数克隆检测特征数据库的更新方法过于冗杂,需要对原始的数据重新进行学习训练来更新二进制函数特征数据,重读计算浪费了大量的时间和精力,已经无法适应于大量快速增长的二进制函数。
发明内容
针对现有技术的缺陷和改进需求,本发明的目的在于提供一种基于张量运算的二进制文件代码搜索检测方法及系统,旨在解决现有技术中存在的缺陷,并使得检测者能够根据准确的二进制函数精细度特征快速检测出跨平台和在不同编译结构下相似的二进制函数,从而找出恶意剽窃或者非法抄袭的恶意二进制函数,同时在时间复杂度和空间复杂度上也优于现有技术。
为实现上述目的,按照本发明的一个方面,提供了一种基于张量运算的二进制文件代码搜索检测方法,该方法包括以下步骤:
S1.提取待检二进制文件和样本库中每个二进制文件汇编函数控制流图的代码块属性特征、控制流图的邻接矩阵,构成各二进制文件的图空间特征;
S2.基于图嵌入算法,将各二进制文件汇编函数的图空间特征编码为对应函数特征矩阵;
S3.基于张量奇异值分解算法,分解样本库所有二进制文件的函数特征矩阵构成的张量模型,得到该张量模型的压缩单位矩阵,根据该张量模型的压缩单位矩阵,得到压缩后的各二进制文件的函数特征矩阵;
S4.将待检二进制文件的压缩后的特征矩阵和样本库进行比对,得到代码搜索克隆检测结果。
具体地,步骤S1包括以下子步骤:
S11.提取二进制文件中函数汇编代码的函数控制流图;
S12.提取函数控制流图的每个代码块的特征属性值,同时提取控制流图的邻接矩阵,提取到的控制流图的邻接矩阵和代码块属性特征共同构成图空间特征。
具体地,代码块属性特征包括:6个统计特征和60个操作码特征;
所述6个统计特征分别为:使用字符串的数目、孩子节点的数目、算术指令的数目、函数调用指令的数目、总指令的数目及转移指令的数目;
所述60个汇编函数操作码特征分别为:依次提取30个代码块的操作码,每个操作码提取两个特征值,一个是类别值,一个是具体类别中的对应的编码值,超出30个的操作码删除,不足的补零。
具体地,步骤S2包括以下子步骤:
S21.根据函数的控制流图的代码块属性特征,获取函数编码特征中的包含代码块属性结构的损失函数;
S22.根据函数的控制流图的邻接矩阵,基于图嵌入算法中的有向边表示结构的二阶邻近特征,获取函数编码特征中的包含控制流图结构的损失函数;
S23.根据所述包含代码块属性结构的损失函数以及所述包含控制流图结构的损失函数,将各二进制文件汇编函数的图空间特征编码为对应函数特征矩阵。
具体地,所述函数编码特征中的包含代码块属性结构的损失函数计算公式如下:
Figure BDA0002189957140000031
其中,Γ1表示代码块编码的损失函数,S表示提取代码块的相似度矩阵,C是函数编码后的函数特征矩阵,
Figure BDA0002189957140000032
Figure BDA0002189957140000033
是矩阵S和C的第i个列向量,n表示节点的数目,H表示复数域的转置。
具体地,所述函数编码特征中的包含控制流图结构的损失函数计算公式如下:
Figure BDA0002189957140000041
其中,Γ2表示邻接矩阵W编码的损失函数,E表示控制流图的边集合,Wij表示节点i和节点j之间是否有跳转边,oi表示控制流图的代码块i的出度,p(j|i)表示基于图嵌入算法中节点i到节点j的二阶邻近概率。
具体地,最终得到目标函数为:
Figure BDA0002189957140000042
其中,λ表示邻接矩阵编码的损失函数的权重,N(i)表示i节点的邻接节点,V表示所有节点的集合;S表示提取代码块的相似度矩阵,C是函数编码后的函数特征矩阵,
Figure BDA0002189957140000043
Figure BDA0002189957140000044
是矩阵S和C的第i个列向量,n表示节点的数目,H表示复数域的转置,E表示控制流图的边集合,Wij表示节点i和节点j之间是否有跳转边,oi表示控制流图的代码块i的出度,p(j|i)表示基于图嵌入算法中节点i到节点j的二阶邻近概率;
根据上述目标函数,并结合ADMM优化学习模型,将带有节点信息的控制流图空间属性结构嵌入编码为数字向量特征。
具体地,步骤S3包括以下子步骤:
S31.根据样本库所有二进制文件的函数特征矩阵,建立张量特征模型A;
S32.利用张量SVD分解算法分解A,得到压缩后对应的单位向量U″;
S33.根据压缩后对应的单位向量U和张量特征模型A,计算压缩后的样本库所有二进制文件对应的特征张量T,根据压缩后对应的单位向量U”和待检二进制文件的函数特征矩阵,计算压缩后的待检二进制文件的函数特征矩阵。
具体地,该方法还包括:
步骤S5.基于张量奇异值分解算法,将新增的汇编函数特征加入到汇编函数克隆检测样本数据库。
为实现上述目的,按照本发明的另一个方面,提供了一种基于张量运算的二进制文件代码搜索检测系统,该系统包括以下:
图空间特征提取模块,用于提取待检二进制文件和样本库中每个二进制文件汇编函数控制流图的代码块属性特征、控制流图的邻接矩阵,构成各二进制文件的图空间特征;
编码模块,用于基于图嵌入算法,将各二进制文件汇编函数的图空间特征编码为对应函数特征矩阵;
特征矩阵压缩模块,用于基于张量奇异值分解算法,分解样本库所有二进制文件的函数特征矩阵构成的张量模型,得到该张量模型的压缩单位矩阵,根据该张量模型的压缩单位矩阵,得到压缩后的各二进制文件的函数特征矩阵;
检测模块,用于将待检二进制文件的压缩后的特征矩阵和样本库进行比对,得到代码搜索克隆检测结果。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明提出张量的压缩算法,将包含所有特征空间嵌入到更小的空间,用更精简的特征表示二进制函数特征。该压缩算法能够同时处理所有的特征数据,提取相似函数的相关信息以及更精简的函数特征,大大提高了二进制函数检测的效率。
(2)本发明基于图嵌入算法提出一种函数编码方法。基于该函数编码得道每个函数独立的嵌入特征,然后基于该汇编函数嵌入特征获取张量空间,然后提出基于张量运算的压缩,降维等算法。提出的张量压缩算法能够用于高效并且准确的提取相似函数特征的相关信息,并对所有的函数特征进行降维,同时将所有函数的高维特征空间降维到一个低维的特征空间上,该空间中的每个低维特征能够对汇编函数的原本属性进行保真,最终得到的每个汇编函数的压缩后的函数特征。
(3)本发明基于张量嵌入特征空间,对新产生的二进制函数进行特征提取,增量地对新增的二进制函数特征的嵌入特征进行张量压缩,同时更新一有二进制函数克隆检测数据库。该增量张量压缩算法能够对原来学习的特征库解耦合,只需要单独对新增的而今函数嵌入特征进行张量建模,并基于改增量算法进行压缩计算。从而避免了之前方法中,在二进制函数克隆检测中特征库的更新过程中,需要全部重新学习原来的特征库的问题。
附图说明
图1为本发明提供的一种基于张量运算的二进制文件代码搜索检测方法流程图;
图2为本发明提供的步骤S3子流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,本发明提供一种基于张量运算的二进制文件代码搜索检测方法,该方法包括以下步骤:
步骤S1.提取待检二进制文件和样本库中每个二进制文件汇编函数控制流图的代码块属性特征、控制流图的邻接矩阵,构成各二进制文件的图空间特征。
步骤S1包括以下子步骤:
S11.提取二进制文件中函数汇编代码的函数控制流图。
将二进制文件反编译成汇编代码,对其中的每个汇编函数提取带有代码块属性特征的控制流图。函数控制流图的每个节点表示函数的代码块,每条边表示函数的代码块的跳转关系。
S12.提取函数控制流图的每个代码块的特征属性值,同时提取控制流图的邻接矩阵,提取到的控制流图的邻接矩阵和代码块属性特征共同构成图空间特征。
对构成函数控制流图的每个代码块的非结构化数据提取结构化的特征属性值。代码块属性特征包括:6个统计特征和60个操作码特征。6个统计特征分别为:使用字符串的数目、孩子节点的数目、算术指令的数目、函数调用指令的数目、总指令的数目及转移指令的数目。代码块通常有30个左右的操作码,因此,本发明提取60个汇编函数操作码特征,依次提取各代码块的操作码,每个操作码提取两个特征值,一个是类别值,一个是具体类别中的对应的编码值。超出30个的操作码删除,不足的补零。控制流图的邻接矩阵用W表示。
对带有代码块属性的二进制文件汇编函数控制流图进行特征提取时,需要结合汇编函数中每个代码块的统计特征和CFG的图结构邻接矩阵特征。该属性既能无损地获取每个二进制函数的原始代码信息,也避免了变异结构不同造成的汇编代码的差异性问题,从源头提高了二进制汇编函数克隆检测的准确率。
步骤S2.基于图嵌入算法,将各二进制文件汇编函数的图空间特征编码为对应函数特征矩阵。
步骤S2包括以下步骤:
S21.根据函数的控制流图的代码块属性特征,获取函数编码特征中的包含代码块属性结构的损失函数。
代码块的相似度矩阵S表示函数控制流图的代码块之间的关联度。S矩阵中的每个元素Sij通过代码块i的特征属性向量和代码块j的特征属性向量之间的余弦相似度计算获得。即
Figure BDA0002189957140000081
其中,
Figure BDA0002189957140000082
表示代码块i的特征属性向量,
Figure BDA0002189957140000083
表示代码块j的特征属性向量。Sij表示代码块i特征属性和代码块j特征属性之间的余弦相似度,也表示矩阵S第i行第j列的值。
根据带有节点属性的网络嵌入算法,得到损失函数如下:
Figure BDA0002189957140000084
其中,Γ1表示代码块编码的损失函数,S表示提取代码块的相似度矩阵,C是函数编码后的函数特征矩阵,是需要计算的结果,
Figure BDA0002189957140000085
Figure BDA0002189957140000086
是矩阵S和C的第i个列向量,n表示节点的数目,H表示复数域的转置。
S22.根据函数的控制流图的邻接矩阵,基于图嵌入算法中的有向边表示结构的二阶邻近特征,获取函数编码特征中的包含控制流图结构的损失函数。
目标函数Γ1学习了代码块属性特征之间的关系,除此之外,还需要学习代码块之间的跳转逻辑信息。在控制流图,当两个节点之间有直接的跳转关系时,说明这两个节点的嵌入向量更加接近,根据这个目标,能够得到下面的损失函数:
Figure BDA0002189957140000087
其中,Γ2表示邻接矩阵W编码的损失函数,E表示控制流图的边集合,Wij表示节点i和节点j之间是否有跳转边,如果存在跳转边,Wij=1,反之,则为0,oi表示控制流图的代码块i的出度,p(j|i)表示基于图嵌入算法中节点i到节点j的二阶邻近概率。
S23.根据所述包含代码块属性结构的损失函数以及所述包含控制流图结构的损失函数,将各二进制文件汇编函数的图空间特征编码为对应函数特征矩阵。
结合目标函数Γ1和Γ2,代入p(j|i)之后,简化最终得到目标函数为:
Figure BDA0002189957140000091
其中,λ表示邻接矩阵编码的损失函数的权重,N(i)表示i节点的邻接节点,V表示所有节点的集合。
根据上述的目标函数,并结合ADMM(交替方向乘子法)优化学习模型,将带有节点信息的控制流图空间属性结构嵌入编码为数字向量特征。
基于图嵌入算法,学习汇编函数的控制流图中的代码块的特征属性以及控制流图的邻接矩阵,使汇编函数的控制流图的几何空间单一地映射到低维的数字特征空间。
步骤S3.基于张量奇异值分解算法,分解样本库所有二进制文件的函数特征矩阵构成的张量模型,得到该张量模型的压缩单位矩阵,根据该张量模型的压缩单位矩阵,得到压缩后的各二进制文件的函数特征矩阵。
对生成的高维函数嵌入特征进行张量建模,利用张量对高维大数据建模的有利性,能够将前面生成的高维函数特征进行进一步的张量压缩和张量降维,使这些特征能够存储到一个更小的张量空间中,获取更为精简的函数特征矩阵表示,能够大大提高二进制文件中汇编函数的克隆检测效率。
利用张量SVD分解算法,得到的单位正交矩阵作为原张量模型的压缩单位矩阵。如图2所示,步骤S3包括以下子步骤:
S31.根据样本库所有二进制文件的函数特征矩阵,建立张量特征模型A。
用所有的函数特征建立一个三维张量特征模型A,该模型用于表示所有的二进制函数特征,第一维表示每个汇编函数的特征,第二维表示一个二进制文件中所有的函数,第三维表示所有的二进制文件。其结构如下:
Figure BDA0002189957140000101
其中,Aijk表示张量模型A的元素,即第j个二进制文件中第k个函数的第i个特征,Ip、In、Il分别表示每个函数特征的长度、每个二进制文件中汇编函数的数目、所有二进制文件的数目。
S32.利用张量SVD分解算法分解A,得到压缩后对应的单位向量U″。
步骤S32包括以下子步骤:
S321.对张量模型A进行快速傅立叶变换,得到频域下的张量D。
D=FFT(A,[],3)
S322.对张量D的每个第三维切片做SVD分解。
[U(i),M(i),V(i)]=SVD((D(:,:,i))
其中,U(i),M(i),V(i)表示张量的U、M、V的第i个第三维切片,D(:,:,i)表示张量D第i个第三维切片。
S323.对张量U进行逆快速傅立叶变换,得到逆快速傅立叶的张量U′。
U′=IFFT(U,[],3)
S324.对正交张量U′进行压缩,得到压缩后的U″。
U″=U′(:,1:d,:)
其中,d表示压缩后的函数特征属性的大小,U′(:,1:d,:)表示张量U′压缩后第二维的所有数据。
基于张量SVD分解得到的压缩矩阵,可证明与原矩阵的保真。
S33.根据压缩后对应的单位向量U和张量特征模型A,计算压缩后的样本库所有二进制文件对应的特征张量T。
T=real(U”*A)
S34.根据压缩后对应的单位向量U”和待检二进制文件的函数特征矩阵,计算压缩后的待检二进制文件的函数特征矩阵。
本发明提出的张量压缩算法,能够用于高效并且准确的提取相似函数特征的相关信息,并对所有的函数特征进行降维,同时将所有函数的高维特征空间降维到一个低维的特征空间上,该空间中的每个低维特征能够对汇编函数的原本属性进行保真。最终得到的每个汇编函数的压缩后的函数特征。有效避免了之前工作中对于检测数据库的更新需要对已有的提取特征全部重新学习的问题,大大提高了二进制文件中汇编函数检测的更新效率。
步骤S4.将待检二进制文件的压缩后的特征矩阵和样本库进行比对,得到代码搜索克隆检测结果。
根据得到的压缩后的函数数字特征进行克隆检测搜索,找到相近的函数特征,判定为克隆的函数,并显示两个函数的相似度大小。本实施例采用局部敏感哈希(LSH)进行搜索。
该方法还包括:
步骤S5.基于张量奇异值分解算法,将新增的汇编函数特征加入到汇编函数克隆检测样本数据库。
对新增的每个汇编函数特征矩阵,都进行以下操作:
S51.新增的第i-1个汇编函数特征矩阵Ci-1与正交压缩张量U中第三维的每一片Ui-1进行乘运算,新增的所有的汇编函数特征矩阵都进行该操作,获取的初步的展开向量
Figure BDA0002189957140000111
其中,Ui-1是张量U沿第三维的横向切片。
S52.计算中间变量L=Ci-1-Ui-1×Span,并计算L的单位正交基矩阵J,以及L的相关系数矩阵K=JT×L,其中,Vi-1、Si-1是张量V、S沿第三维的横向切片。
S53.对增量的特征矩阵进行分解,
Figure BDA0002189957140000112
并计算中间项
Figure BDA0002189957140000113
进行SVD分解后的奇异单位正交矩阵U0、V0,其中,Ai-1是原始张量模型A的沿第三维的横向切片,I表示单位矩阵。
S54.获取最后用与压缩计算的每一片新的单位正交基矩阵U′=[Ui-1,J]×U0
Figure BDA0002189957140000121
S55.根据更新的正交矩阵U′、原始张量特征模型A和新增的特征矩阵Ci-1,计算压缩后的更新的特征张量。
T′=real(U′*(Ai-1,Ci-1))
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种基于张量运算的二进制文件代码搜索检测方法,其特征在于,该方法包括以下步骤:
S1.提取待检二进制文件和样本库中每个二进制文件汇编函数控制流图的代码块属性特征、控制流图的邻接矩阵,构成各二进制文件的图空间特征;
S2.基于图嵌入算法,将各二进制文件汇编函数的图空间特征编码为对应函数特征矩阵;
S3.基于张量奇异值分解算法,分解样本库所有二进制文件的函数特征矩阵构成的张量模型,得到该张量模型的压缩单位矩阵,根据该张量模型的压缩单位矩阵,得到压缩后的各二进制文件的函数特征矩阵;
S4.将待检二进制文件的压缩后的特征矩阵和样本库进行比对,得到代码搜索克隆检测结果;
步骤S2包括以下子步骤:
S21.根据函数的控制流图的代码块属性特征,获取函数编码特征中的包含代码块属性结构的损失函数;
S22.根据函数的控制流图的邻接矩阵,基于图嵌入算法中的有向边表示控制流图结构的二阶邻近特征,获取函数编码特征中的包含控制流图结构的损失函数;
S23.根据所述包含代码块属性结构的损失函数以及所述包含控制流图结构的损失函数,将各二进制文件汇编函数的图空间特征编码为对应函数特征矩阵。
2.如权利要求1所述的方法,其特征在于,步骤S1包括以下子步骤:
S11.提取二进制文件中函数汇编代码的函数控制流图;
S12.提取函数控制流图的每个代码块的特征属性值,同时提取控制流图的邻接矩阵,提取到的控制流图的邻接矩阵和代码块属性特征共同构成图空间特征。
3.如权利要求1所述的方法,其特征在于,代码块属性特征包括:6个统计特征和60个操作码特征;
所述6个统计特征分别为:使用字符串的数目、孩子节点的数目、算术指令的数目、函数调用指令的数目、总指令的数目及转移指令的数目;
所述60个汇编函数操作码特征分别为:依次提取30个代码块的操作码,每个操作码提取两个特征值,一个是类别值,一个是具体类别中的对应的编码值,超出30个的操作码删除,不足的补零。
4.如权利要求1所述的方法,其特征在于,所述函数编码特征中的包含代码块属性结构的损失函数计算公式如下:
Figure FDA0002732650270000021
其中,Γ1表示代码块编码的损失函数,S表示提取代码块的相似度矩阵,C是函数编码后的函数特征矩阵,
Figure FDA0002732650270000022
Figure FDA0002732650270000023
是矩阵S和C的第i个列向量,n表示节点的数目,H表示复数域的转置。
5.如权利要求1所述的方法,其特征在于,所述函数编码特征中的包含控制流图结构的损失函数计算公式如下:
Figure FDA0002732650270000031
其中,Γ2表示邻接矩阵W编码的损失函数,E表示控制流图的边集合,Wij表示节点i和节点j之间是否有跳转边,oi表示控制流图的节点i的出度,p(j|i)表示基于图嵌入算法中节点i到节点j的二阶邻近概率。
6.如权利要求1所述的方法,其特征在于,根据所述包含代码块属性结构的损失函数以及所述包含控制流图结构的损失函数,最终得到目标函数为:
Figure FDA0002732650270000032
其中,λ表示邻接矩阵编码的损失函数的权重,N(i)表示节点i的邻接节点,V表示所有节点的集合;S表示提取代码块的相似度矩阵,C是函数编码后的函数特征矩阵,
Figure FDA0002732650270000033
Figure FDA0002732650270000034
是矩阵S和C的第i个列向量,n表示节点的数目,H表示复数域的转置,E表示控制流图的边集合,Wij表示节点i和节点j之间是否有跳转边,oi表示控制流图的节点i的出度,p(j|i)表示基于图嵌入算法中节点i到节点j的二阶邻近概率;
根据上述目标函数,并结合ADMM优化学习模型,将带有节点信息的控制流图空间属性结构嵌入编码为数字向量特征。
7.如权利要求1所述的方法,其特征在于,步骤S3包括以下子步骤:
S31.根据样本库所有二进制文件的函数特征矩阵,建立张量特征模型A;
S32.利用张量SVD分解算法分解A,得到压缩后对应的单位向量U″;
S33.根据压缩后对应的单位向量U″和张量特征模型A,计算压缩后的样本库所有二进制文件对应的特征张量T,根据压缩后对应的单位向量U″和待检二进制文件的函数特征矩阵,计算压缩后的待检二进制文件的函数特征矩阵。
8.如权利要求1所述的方法,其特征在于,该方法还包括:
步骤S5.基于张量奇异值分解算法,将新增的汇编函数特征加入到汇编函数克隆检测样本数据库。
9.一种基于张量运算的二进制文件代码搜索检测系统,其特征在于,该系统包括以下:
图空间特征提取模块,用于提取待检二进制文件和样本库中每个二进制文件汇编函数控制流图的代码块属性特征、控制流图的邻接矩阵,构成各二进制文件的图空间特征;
编码模块,用于基于图嵌入算法,将各二进制文件汇编函数的图空间特征编码为对应函数特征矩阵;
特征矩阵压缩模块,用于基于张量奇异值分解算法,分解样本库所有二进制文件的函数特征矩阵构成的张量模型,得到该张量模型的压缩单位矩阵,根据该张量模型的压缩单位矩阵,得到压缩后的各二进制文件的函数特征矩阵;
检测模块,用于将待检二进制文件的压缩后的特征矩阵和样本库进行比对,得到代码搜索克隆检测结果;
所述编码模块通过以下方式实现:
(1)根据函数的控制流图的代码块属性特征,获取函数编码特征中的包含代码块属性结构的损失函数;
(2)根据函数的控制流图的邻接矩阵,基于图嵌入算法中的有向边表示控制流图结构的二阶邻近特征,获取函数编码特征中的包含控制流图结构的损失函数;
(3)根据所述包含代码块属性结构的损失函数以及所述包含控制流图结构的损失函数,将各二进制文件汇编函数的图空间特征编码为对应函数特征矩阵。
CN201910828746.4A 2019-09-03 2019-09-03 一种基于张量运算的二进制文件代码搜索检测方法及系统 Active CN110688150B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910828746.4A CN110688150B (zh) 2019-09-03 2019-09-03 一种基于张量运算的二进制文件代码搜索检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910828746.4A CN110688150B (zh) 2019-09-03 2019-09-03 一种基于张量运算的二进制文件代码搜索检测方法及系统

Publications (2)

Publication Number Publication Date
CN110688150A CN110688150A (zh) 2020-01-14
CN110688150B true CN110688150B (zh) 2020-12-08

Family

ID=69108747

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910828746.4A Active CN110688150B (zh) 2019-09-03 2019-09-03 一种基于张量运算的二进制文件代码搜索检测方法及系统

Country Status (1)

Country Link
CN (1) CN110688150B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111459889B (zh) * 2020-03-08 2023-06-16 中电海康集团有限公司 一种用于物联网平台的设备数据模型生成方法和装置
CN116663004B (zh) * 2023-07-27 2023-09-29 湖南大学 基于图Transformers的二进制函数相似性检测方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109063055A (zh) * 2018-07-19 2018-12-21 中国科学院信息工程研究所 同源二进制文件检索方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005301859A (ja) * 2004-04-15 2005-10-27 Fujitsu Ltd コード検索プログラム及びコード検索装置
CN108875317B (zh) * 2017-05-08 2022-06-07 中国移动通信有限公司研究院 软件克隆检测方法及装置、检测设备及存储介质
CN107507253B (zh) * 2017-08-15 2020-09-01 电子科技大学 基于高阶张量近似的多属性体数据压缩方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109063055A (zh) * 2018-07-19 2018-12-21 中国科学院信息工程研究所 同源二进制文件检索方法和装置

Also Published As

Publication number Publication date
CN110688150A (zh) 2020-01-14

Similar Documents

Publication Publication Date Title
Liu et al. Constrained nonnegative matrix factorization for image representation
WO2023124204A1 (zh) 反欺诈风险评估方法、训练方法、装置及可读存储介质
CN104462196B (zh) 多特征联合哈希信息检索方法
CN106529721B (zh) 一种深度特征提取的广告点击率预测系统及其预测方法
CN109697451B (zh) 相似图像聚类方法及装置、存储介质、电子设备
WO2015062209A1 (zh) 随机森林分类模型的可视化优化处理方法及装置
Zhao et al. A malware detection method of code texture visualization based on an improved faster RCNN combining transfer learning
CN113887643B (zh) 一种基于伪标签自训练和源域再训练的新对话意图识别方法
CN110688150B (zh) 一种基于张量运算的二进制文件代码搜索检测方法及系统
Huang et al. Harmonious genetic clustering
CN115017511A (zh) 一种源代码漏洞检测方法、装置以及存储介质
Niu et al. One-step multi-view subspace clustering with incomplete views
Chen et al. Malicious URL detection based on improved multilayer recurrent convolutional neural network model
CN110348287A (zh) 一种基于字典和样本相似图的无监督特征选择方法和装置
Chen et al. Distribution knowledge embedding for graph pooling
CN113178232A (zh) 一种circRNA和疾病关联关系的高效预测方法
CN107240100B (zh) 一种基于遗传算法的图像分割方法和系统
CN109583712B (zh) 一种数据指标分析方法及装置、存储介质
CN112765606A (zh) 恶意代码同源性分析方法和装置及设备
CN116186708A (zh) 类别识别模型生成方法、装置、计算机设备和存储介质
CN116027874A (zh) 笔记本电脑功耗控制方法及其系统
CN112561599A (zh) 一种融合域特征交互的基于注意力网络学习的点击率预测方法
Archana et al. Community detection in complex networks using randomisation
CN117976047B (zh) 基于深度学习的关键蛋白质预测方法
CN117195238B (zh) 一种异构图神经网络代码漏洞检测方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant