二进制代码分析方法技术

技术编号:39725831 阅读:6 留言:0更新日期:2023-12-17 23:30
本申请提供一种二进制代码分析方法

【技术实现步骤摘要】
二进制代码分析方法、装置、电子设备和存储介质


[0001]本申请涉及人工智能领域,具体而言,涉及一种二进制代码分析方法

装置

电子设备和存储介质


技术介绍

[0002]二进制代码分析是指对二进制形式的程序代码进行理解

解析和分析的过程

它涉及了对二进制代码的结构

功能

漏洞和行为等方面的研究和分析

目前,现有的二进制代码分析方法不具备相邻节点的预测能力


技术实现思路

[0003]本申请实施例的目的在于提供一种二进制代码分析方法

装置

电子设备和存储介质,用以至少基于模型自动实现识别二进制代码中的相邻节点,以便于分析二进制代码文件的基本块调用关系

[0004]第一方面,本专利技术提供一种二进制代码分析方法,所述方法包括:
[0005]获取待分析二进制代码文件,并生成所述待分析二进制代码文件的属性控制图,其中,所述属性控制图的一个节点对应一个基本块;
[0006]确定所述属性控制图的节点链接信息和所述属性控制图的节点信息;
[0007]基于词法分析器处理所述属性控制图的节点信息;
[0008]基于所述控制图的节点链接信息确定最短距离矩阵,并基于所述最短距离矩阵和所述属性控制图的节点信息构建模型输入数据,其中,所述模型输入数据包括节点数据和距离标签;/>[0009]将所述模型输入数据输入到第一二进制代码分析模型中,以使所述第一二进制代码分析模型基于所述模型输入数据输出所述待分析二进制代码文件的邻居节点识别结果,其中,所述邻居节点识别结果表征所述二进制代码文件的基本块调用关系,所述第一二进制代码分析模型包括
RoBERTa
模型和线性层,所述
RoBERTa
模型用于提取所述节点数据的特征向量,所述线性层用于基于所述节点数据的特征向量和距离标签确定所述邻居节点识别结果

[0010]本申请第一方面的方法通过获取待分析二进制代码文件,并生成所述待分析二进制代码文件的属性控制图,其中,所述属性控制图的一个节点对应一个基本块,进而能够确定所述属性控制图的节点链接信息和所述属性控制图的节点信息,进而能够基于词法分析器处理所述属性控制图的节点信息,进而能够基于所述控制图的节点链接信息确定最短距离矩阵,并基于所述最短距离矩阵和所述属性控制图的节点信息构建模型输入数据,其中,所述模型输入数据包括节点数据和距离标签,最终能够将所述模型输入数据输入到第一二进制代码分析模型中,以使所述第一二进制代码分析模型基于所述模型输入数据输出所述待分析二进制代码文件的邻居节点识别结果,其中,所述邻居节点识别结果表征所述二进制代码文件的基本块调用关系,所述第一二进制代码分析模型包括
RoBERTa
模型和线性层,
所述
RoBERTa
模型用于提取所述节点数据的特征向量,所述线性层用于基于所述节点数据的特征向量和距离标签确定所述邻居节点识别结果

[0011]在可选的实施方式中,所述方法包括:
[0012]基于所述属性控制图的节点信息提取两个节点分别作为第一函数和第二函数;
[0013]将第一函数和第二函数输入到第二二进制代码分析模型中,以使所述第二二进制代码分析模型输出函数相似性识别结果,其中,所述函数相似性识别结果表征所述第一函数和所述第二函数是否相似,所述第二二进制代码分析模型包括两个所述
RoBERTa
模型
、SIM
函数

两个所述
RoBERTa
模型分别用于提取所述第一函数的特征向量

提取所述第二函数的特征向量,且两个所述
RoBERTa
模型共享模型参数,所述
SIM
函数用于基于所述第一函数的特征向量和所述第二函数的特征向量计算所述第一函数与所述第二函数之间的相似度

[0014]本可选的实施方式通过所述属性控制图的节点信息提取两个节点分别作为第一函数和第二函数,进而能够将第一函数和第二函数输入到第二二进制代码分析模型中,以使所述第二二进制代码分析模型输出函数相似性识别结果,其中,所述函数相似性识别结果表征所述第一函数和所述第二函数是否相似,所述第二二进制代码分析模型包括两个所述
RoBERTa
模型
、SIM
函数

两个所述
RoBERTa
模型分别用于提取所述第一函数的特征向量

提取所述第二函数的特征向量,且两个所述
RoBERTa
模型共享模型参数,所述
SIM
函数用于基于所述第一函数的特征向量和所述第二函数的特征向量计算所述第一函数与所述第二函数之间的相似度,最终实现自动分析二进制代码中的相似函数

[0015]在可选的实施方式中,所述
RoBERTa
模型还用于对所述第一函数的特征向量

提取所述第二函数的特征向量进行平均池操作

[0016]本可选的实施方式通过对所述第一函数的特征向量

提取所述第二函数的特征向量进行平均池操作,可使特征向量具备整个序列的信息,且具有固定的维度

[0017]在可选的实施方式中,所述
RoBERTa
模型包括掩码语言模型,其中,所述掩码语言模型基于动态掩码模式训练得到

[0018]本可选的实施方式,通过掩码语言模型可使
RoBERTa
模型具备理解上下文的能力,从而使
RoBERTa
模型更加精确地提取特征向量

同时,通过动态掩码模式训练掩码语言模型,可使掩码语言模型对于不同的输入数据都能够具有较好的上下文理解能力,可使掩码语言模型具有更好的泛化能力和具有更好的鲁棒性

[0019]在可选的实施方式中,所述词法分析器基于
BPE
算法得到

[0020]本可选的实施方式通过
BPE
算法得到词法分析器,可避免过多的
UNKOWN
标签
,
一定程度上解决了
OOV(Out of Vocabulary)
问题

[0021]在可选的实施方式中,所述基于所述控制图的节点链接信息确定最短距离矩阵,包括:
[0022]基于
Flody
算法处理所述控制图的节点链接信息,并得到所述最短距离矩阵

[0023]本可选的实施方式通过
Flody
算法处理所述控制图的节点链接信息,进而能够得到所述最短距离矩阵
本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.
一种二进制代码分析方法,其特征在于,所述方法包括:获取待分析二进制代码文件,并生成所述待分析二进制代码文件的属性控制图,其中,所述属性控制图的一个节点对应一个基本块;确定所述属性控制图的节点链接信息和所述属性控制图的节点信息;基于词法分析器处理所述属性控制图的节点信息;基于所述控制图的节点链接信息确定最短距离矩阵,并基于所述最短距离矩阵和所述属性控制图的节点信息构建模型输入数据,其中,所述模型输入数据包括节点数据和距离标签;将所述模型输入数据输入到第一二进制代码分析模型中,以使所述第一二进制代码分析模型基于所述模型输入数据输出所述待分析二进制代码文件的邻居节点识别结果,其中,所述邻居节点识别结果表征所述二进制代码文件的基本块调用关系,所述第一二进制代码分析模型包括
RoBERTa
模型和线性层,所述
RoBERTa
模型用于提取所述节点数据的特征向量,所述线性层用于基于所述节点数据的特征向量和距离标签确定所述邻居节点识别结果
。2.
如权利要求1所述的二进制代码分析方法,其特征在于,所述方法包括:基于所述属性控制图的节点信息提取两个节点,分别作为第一函数和第二函数;将第一函数和第二函数输入到第二二进制代码分析模型中,以使所述第二二进制代码分析模型输出函数相似性识别结果,其中,所述函数相似性识别结果表征所述第一函数和所述第二函数是否相似,所述第二二进制代码分析模型包括两个所述
RoBERTa
模型
、SIM
函数,两个所述
RoBERTa
模型分别用于提取所述第一函数的特征向量

提取所述第二函数的特征向量,且两个所述
RoBERTa
模型共享模型参数,所述
SIM
函数用于基于所述第一函数的特征向量和所述第二函数的特征向量计算所述第一函数与所述第二函数之间的相似度
。3.
如权利要求2所述的二进制代码分析方法,其特征在于,所述
RoBERTa
模型还用于对所述第一函数的特征向量

提取所述第二函数的特征向量进行平均池操作
。4.
如权利要求1所述的二进制代码分析方法,其特征在于,所述
RoBERTa
模型包括掩码语言模...

【专利技术属性】
技术研发人员:陶锐杨频张磊安晓宁
申请(专利权)人:北京天融信网络安全技术有限公司
类型:发明
国别省市:

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

1