【技术实现步骤摘要】
二进制文件相似度匹配方法、装置及存储介质
[0001]本申请涉及计算机
,尤其涉及一种二进制文件相似度匹配方法、装置及存储介质。
技术介绍
[0002]物联网软件的开发用到了大量的开源组件来提高效率和降低开支,但物联网软件供应链中对开源组件的复用也导致了很多安全问题,为了检测和分析此类组件复用带来的安全威胁,需要构建组件之间的同源关系分析模型,分析不同的组件是否是从相同的源代码编译而来,然后比较物联网软件中的开源组件二进制文件与官方发布的开源组件二进制文件之间的差异。由于相同源代码的二进制文件使用不同架构或不同优化选项会导致编译结果不同,从而使相似性分析困难。
[0003]现有技术中,对于跨架构和优化选项的问题,通过反编译手段提取组件特征,基于该组件特征来比较二进制组件的相似性。
[0004]一种方法是将可读字符串作为二进制文件特征来计算不同组件的同源关系,但很多二进制文件所包含的可读字符串很少,或者不具有可读字符串,故这种方法对于这一类二进制文件很难提取特征进行同源比较。另一种方法是用B2V(stru ...
【技术保护点】
【技术特征摘要】
1.一种二进制文件相似度匹配方法,其特征在于,包括:基于二进制文件中的函数的属性生成带属性函数调用图;基于图神经网络GraphSAGE和注意力机制确定所述带属性函数调用图的图嵌入表示;基于所述图嵌入表示确定二进制文件的相似度匹配结果。2.根据权利要求1所述的二进制文件相似度匹配方法,其特征在于,基于二进制文件中的函数的属性生成带属性函数调用图,包括:以二进制文件中的函数为节点、函数间的调用为边,基于函数的第一属性生成带属性函数调用图;所述第一属性指二进制文件中编译前后保持不变的属性。3.根据权利要求2所述的二进制文件相似度匹配方法,其特征在于,所述第一属性包括以下属性中的一种或多种:函数代码中堆栈地址变量的数量;函数代码中转移指令的数量;函数代码中逻辑指令的数量;指令的数量;字符串的数量;常量的数量;函数控制流图CFG中包含的基本块的数量;函数调用其他函数的次数;函数被调用的次数。4.根据权利要求1所述的二进制文件相似度匹配方法,其特征在于,基于GraphSAGE和注意力机制确定所述带属性函数调用图的图嵌入表示,包括:将所述带属性函数调用图输入GraphSAGE进行学习,得到节点嵌入表示;基于注意力机制确定节点在图嵌入表示中的权重;基于所述节点嵌入表示和所述节点在图嵌入表示中的权重确定所述带属性函数调用图的图嵌入表示。5.根据权利要求4所述的二进制文件相似度匹配方法,其特征在于,基于所述节点嵌入表示和所述节点在图嵌入表示中的权重确定所述带属性函数调用图的图嵌入表示,包括:基于所述节点嵌入表示和所述节点在图嵌入表示中的权重计算每一网络层对应的初...
【专利技术属性】
技术研发人员:李红,王志宇,王卓,朱红松,孙利民,
申请(专利权)人:中国科学院信息工程研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。