【技术实现步骤摘要】
本专利技术涉及代码克隆检测,具体涉及一种利用结构信息的二进制代码克隆检测方法和系统。
技术介绍
1、随着科技时代的来临,人们所开发出的软件程序数不胜数。但在软件开发的过程中,人们不可避免的会进行或多或少的代码克隆行为,代码克隆指的是对代码进行复制和粘贴的行为,在复制粘贴过程中也可能会对代码进行适当修改。虽然代码克隆会提高开发人员的效率,降低开发成本和开发难度,但是也会提高后期软件的维护成本。特别是在当今时代,软件程序的代码重构、漏洞修复,甚至是软件剽窃,都迫切需要进行代码克隆检测。
2、目前针对源代码的克隆检测技术较为成熟,无论是语义克隆还是非语义克隆,源代码克隆检测技术都能达到不错的检测效果。但是针对二进制代码克隆检测的研究及应用较少,一方面是因为对于二进制代码的理解有难度,另一方面是因为通常需要涉及到逆向工程方面的知识。但在这些场景下,通常都无法直接获取到二进制程序的源代码,由此可见二进制代码克隆检测的重要性和应用价值。
3、但在当前,二进制代码克隆检测存在以下的不足和局限:
4、1、没有充分利用
...【技术保护点】
1.一种利用结构信息的二进制代码克隆检测方法,其特征在于,所述方法包括:
2.根据权利要求1所述的一种利用结构信息的二进制代码克隆检测方法,其特征在于,所述基本块间的结构信息为基本块通过控制流所指向的其他基本块的位置关系;所述控制流表示为基本块的执行顺序,其中,每一个基本块至多有两条控制流指向下一个基本块。
3.根据权利要求1所述的一种利用结构信息的二进制代码克隆检测方法,其特征在于,对所述二进制代码指令序列进行预处理包括:
4.根据权利要求1所述的一种利用结构信息的二进制代码克隆检测方法,其特征在于,所述词向量模型的训练过程包括采
...【技术特征摘要】
1.一种利用结构信息的二进制代码克隆检测方法,其特征在于,所述方法包括:
2.根据权利要求1所述的一种利用结构信息的二进制代码克隆检测方法,其特征在于,所述基本块间的结构信息为基本块通过控制流所指向的其他基本块的位置关系;所述控制流表示为基本块的执行顺序,其中,每一个基本块至多有两条控制流指向下一个基本块。
3.根据权利要求1所述的一种利用结构信息的二进制代码克隆检测方法,其特征在于,对所述二进制代码指令序列进行预处理包括:
4.根据权利要求1所述的一种利用结构信息的二进制代码克隆检测方法,其特征在于,所述词向量模型的训练过程包括采用第一语料库数据对所述词向量模型进行预训练;当再训练数据筛选单元补充的第二语料库数据达到预设阈值时,采用第二语料库数据对所述词向量模型进行再训练。
5.根据权利要求1所述的一种利用结构信息的二进制代码克隆检测方法,其特征在于,所述深度学习模型的训练过程包括采用第一训练集数据对所述深度学习模型进行预训练;当再训练数据筛选单元补充的第二训练集数据达到预设阈值时,采用第二训练集数据对所述深度学习模型进行再训练。
6.根据权利要求1所述的一种利用结构信息的二进制代码克隆检测方法,其特征在于,所述深度学习模型包括:利用第一双向长短期记忆神经网络提取出每个基本块的初始特征;利用结构信息和迭代网络更新每一个基本块的初始特征;将迭代更新特征后的基本块作为序列性数据输入到第二双向长短期记忆神经网络中提取出函数级特征;采用注意力机制从函数级特征中提取出最终的的注意力特征;采用全连接层提取出所述注意力特征的语义特征向量。...
【专利技术属性】
技术研发人员:万邦睿,周建军,钱鹰,刘歆,陈奉,漆益,王莹,
申请(专利权)人:重庆邮电大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。