【技术实现步骤摘要】
本专利技术属于计算机安全,具体涉及一种多层次特征融合的二进制代码相似性检测方法及系统。
技术介绍
1、二进制代码相似性检测是指通过分析和比对不同二进制文件之间的相似性,帮助识别潜在的代码重复、恶意篡改或者未经授权的修改。由于软件开发速度不断加快,开发人员通常优先实现产品的核心功能并尽早推向市场,而对软件安全的关注度相对不足。
2、传统二进制代码相似性检测方法主要依赖手工特征,例如,使用汇编指令中的操作码序列分析代码的低级结构,或通过分析函数调用图(cg)和基本块间的控制流关系来判断同源函数。基于深度学习的方法则通过学习更高层次的表示自动提取代码特征,特别是在处理复杂的代码表示时表现出色。例如,一些方法使用图神经网络(gnn)对代码的控制流图(cfg)和高级控制流图(acfg)进行图结构建模,如geinus、gemini和vulseeker等方法。
3、尽管基于学习的bcsd方法比传统方法具有更好的性能。但是,当前在跨架构、跨编译器等场景中仍然具有以下问题:
4、(1)现有技术大多依赖二进制代码的单一表
...【技术保护点】
1.一种多层次特征融合的二进制代码相似性检测方法,其特征在于,包括:获取待检测的两份二进制文件,对待检测的两份二进制文件分别进行反汇编,得到两份二进制文件的代码表示,对两份二进制文件的代码表示进行预处理后输入训练好的二进制代码相似性检测模型,得到相似性得分;二进制代码相似性检测模型包括:CFG分支、伪码分支、结构特征提取模块以及特征融合模块;二进制代码相似性检测模型的训练过程包括:
2.根据权利要求1所述的一种多层次特征融合的二进制代码相似性检测方法,其特征在于,对控制流图CFGn进行预处理包括:
3.根据权利要求1所述的一种多层次特征融合的二
...【技术特征摘要】
1.一种多层次特征融合的二进制代码相似性检测方法,其特征在于,包括:获取待检测的两份二进制文件,对待检测的两份二进制文件分别进行反汇编,得到两份二进制文件的代码表示,对两份二进制文件的代码表示进行预处理后输入训练好的二进制代码相似性检测模型,得到相似性得分;二进制代码相似性检测模型包括:cfg分支、伪码分支、结构特征提取模块以及特征融合模块;二进制代码相似性检测模型的训练过程包括:
2.根据权利要求1所述的一种多层次特征融合的二进制代码相似性检测方法,其特征在于,对控制流图cfgn进行预处理包括:
3.根据权利要求1所述的一种多层次特征融合的二进制代码相似性检测方法,其特征在于,cfg分支包括语义嵌入模块和函数级嵌入模块;cfg分支对两份二进制文件的控制流图cfg″n进行处理包括:分别将两份二进制文件的控制流图cfg″n输入语义嵌入模块,得到两份二进制文件的控制流图cfg″n的每个基本块的高维嵌入矩阵hn,i;分别将两份二进制文件的控制流图cfg″n的每个基本块的高维嵌入矩阵hn,i和邻接矩阵输入函数级嵌入模块,得到两份二进制文件的汇编指令的特征向量,根据两份二进制文件的汇编指令的特征向量计算两份二进制文件的汇编指令之间的相似度x;其中,i为基本块的索引。
4.根据权利要求3所述的一种多层次特征融合的二进制代码相似性检测方法,其特征在于,语义嵌入模块为word2vec模型;其中,word2vec为词向量模型。
5.根据权利要求3所述的一种多层次特征融合的二进制代码相似性检测方法,其特征在于,函数级嵌入模块包括:bi-gru、gcn以及bi-gru与注意力模块;函数级嵌入模块对二进制文件的控制流图cfg″n的每个基本块的高维嵌入矩阵hn,i和邻接矩阵进行处理包括:分别将每个基本块的高维嵌入矩阵hn,i输入bi-gru网络,得到每个基本块的块内全局依赖特征h′n,i;将每个基本块的块内全局依赖特征h′n,i和控制流图cfg″n的邻接矩阵输入gcn,得到每个基本块的块间特征h″n,i,将每个基本块的块间特征h″n,i输入bi-gru与注意力模块,得到汇编指令的特征向量;其...
【专利技术属性】
技术研发人员:万邦睿,王莹,钱鹰,陈奉,刘苏,魏政,
申请(专利权)人:重庆邮电大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。