[发明专利]一种基于深度学习的二进制代码相似度检测方法在审
申请号: | 202110855101.7 | 申请日: | 2021-07-27 |
公开(公告)号: | CN113554101A | 公开(公告)日: | 2021-10-26 |
发明(设计)人: | 耿晓旭;邱景 | 申请(专利权)人: | 哈尔滨理工大学 |
主分类号: | G06K9/62 | 分类号: | G06K9/62;G06F16/901;G06N3/04;G06N3/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 150080 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 深度 学习 二进制 代码 相似 检测 方法 | ||
1.一种基于深度学习的二进制代码相似度检测方法,其特征在于,包括以下几个步骤:
S1、构建控制流程图生成模块,用于构建二进制代码对应的控制流程图;
S2、构建基于Structure2Vec的图结构信息嵌入值生成模块,用于获取二进制代码控制流程图对应的图结构信息嵌入值;
S3、构建基于CNN的图顺序信息嵌入值生成模块,用于获取二进制代码控制流程图对应的图顺序信息嵌入值;
S4、构建基于全连接神经网络的特征融合模块,用于融合图结构信息和图顺序信息,生成函数对应的控制流程图的最终嵌入值表示形式;
S5、构建基于暹罗架构的相似度检测模块,用于获取函数对应嵌入值之间的相似度,生成最终的相似度判定结果。
2.根据权利要求1所述的基于深度学习的二进制代码相似度检测方法,其特征在于:所述控制流程图生成模块中,为了使得相似度计算方法获取的输入信息更加丰富且更加具有鲁棒性,同时便于模型的输入和理解,将二进制代码反汇编后得到的汇编代码转换为与之对应的控制流程图,同时将控制流程图中的基本块进行进一步处理,转化为数值特征来表示,提高模型鲁棒性的同时简化模型的输入。
3.根据权利要求1所述的基于深度学习的二进制代码相似度检测方法,其特征在于:所述构建基于Structure2Vec的图结构信息嵌入值生成模块中,为了避免传统图匹配计算方法在计算时间方面的缺陷,使用嵌入值来表示一段二进制代码,既充分的学习了基本块的特征值,又有效的结合了二进制代码基本块之间的结构信息,同时通过函数嵌入值来计算相似度极大的缩短了相似度计算时间,提高了相似度计算工作的效率。
4.根据权利要求1所述的基于深度学习的二进制代码相似度检测方法,其特征在于:所述构建基于CNN的图顺序信息嵌入值生成模块,因Structure2Vec面向的图对象为无向图,因此只使用Structure2Vec生成图的嵌入值表示会缺少基本块之间的先后顺序信息,因此引入CNN来获取函数控制流程图的顺序信息,从而弥补Structure2Vec在这方面的缺陷。
5.根据权利要求1所述的基于深度学习的二进制代码相似度检测方法,其特征在于:所述构建基于全连接神经网络的特征融合模块,为了融合图结构信息和图顺序信息,生成函数对应的控制流程图的最终嵌入值,引入全连接神经网络将Structure2Vec模块生成的特征值和CNN生成的特征值进行融合,生成最终的函数控制流程图对应的嵌入值表示。
6.根据权利要求1所述的基于深度学习的二进制代码相似度检测方法,其特征在于:所述构建基于暹罗架构的相似度检测模块,将待比较的函数对输入暹罗架构,暹罗架构中的图嵌入模块使用相同的参数值,因此保证了相似函数的嵌入值的余弦距离是接近于1的,同时也使得不相似函数的嵌入值的余弦距离接近-1,从而能够较为准确的判定两个函数是否相似以及相似的程度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨理工大学,未经哈尔滨理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110855101.7/1.html,转载请声明来源钻瓜专利网。