一种基于执行语义的代码相似性检测方法技术

技术编号:46097590 阅读:8 留言:0更新日期:2025-08-12 18:17
本发明专利技术公开了一种基于执行语义的代码相似性检测方法,采用端到端的模拟执行机制,引导模型通过指令的动态执行行为建模指令,从而深入理解和分析代码的语义内涵,提取具有执行语义特征的表示;利用逆向分析工具对二进制程序进行反汇编与控制流图构建,并对基本块内的汇编指令进行统计与标准化处理,以筛选出具有语义代表性的关键指令;再采用Transformer模型模拟指令的执行过程,分析和捕捉指令在特定上下文中的语义行为,进而生成具有执行语义信息的指令嵌入表示;最后,借助图匹配神经网络对控制流图中节点的结构信息进行建模,融合基本块间的执行语义,构建函数级的表示,并通过余弦距离实现精确的相似性度量。

【技术实现步骤摘要】

本专利技术属于人工智能,具体为一种基于执行语义的代码相似性检测方法


技术介绍

1、在当今快速发展的信息技术时代,软件开发已经从单纯的编码转变为一个更复杂、更系统的过程。随着开源文化的兴起,开发人员可以轻松访问大量的开源资源,开源组件和第三方库的广泛使用大大加快了开发速度,但也增加了维护代码质量控制的难度。在此背景下,二进制代码相似性检测(bcsd)技术变得尤为重要。bcsd技术可以应用于多种任务,如漏洞检测、恶意软件分类和代码剽窃检测等。随着人工智能(ai)技术的迅猛发展,基于ai的二进制代码相似性检测(bcsd)方法应运而生。这些方法通常将目标二进制代码(例如函数)嵌入到向量空间中,并通过计算向量间的相似性来进行比较。然而,这些方法大多借鉴了自然语言处理(nlp)技术,将汇编代码视作人类语句来处理,却忽略了代码语义的核心特征,其执行效果。尽管现有的基于学习的方法在静态代码分析方面取得了显著进展,但它们与程序的执行语义脱节,这导致模型在面对复杂的代码结构或经过混淆的代码时,难以准确捕捉到代码的真实语义。

2、在现有技术中,中国专利申请号201本文档来自技高网...

【技术保护点】

1.一种基于执行语义的代码相似性检测方法,用于二进制代码相似性检测领域,其特征在于:包括以下步骤:

2.如权利要求1所述的一种基于执行语义的代码相似性检测方法,其特征在于:所述步骤1具体为,首先对大规模的汇编代码语料库进行解析,统计各类指令的出现频率;通过脚本遍历语料库中的每一条指令,记录每种指令的出现次数,并生成频率分布表;根据统计结果,将出现频率超过语料库中总指令数5%的指令定义为高频指令,并将低于该阈值的指令从语料库中移除;

3.如权利要求1所述的一种基于执行语义的代码相似性检测方法,其特征在于:所述步骤2具体为,使用Transformer模型对汇编指令进行...

【技术特征摘要】

1.一种基于执行语义的代码相似性检测方法,用于二进制代码相似性检测领域,其特征在于:包括以下步骤:

2.如权利要求1所述的一种基于执行语义的代码相似性检测方法,其特征在于:所述步骤1具体为,首先对大规模的汇编代码语料库进行解析,统计各类指令的出现频率;通过脚本遍历语料库中的每一条指令,记录每种指令的出现次数,并生成频率分布表;根据统计结果,将出现频率超过语料库中总指令数5%的指令定义为高频指令,并将低于该阈值的指令从语料库中移除;

3.如权利要求1所述的一种基于执行语义的代码相似性检测方法,其特征在于:所述步骤2具体为,使用transformer模型对汇编指令进行模拟执行;模型的输入由两部分组成:汇编指令的嵌入向量和执行环境的嵌入表示;汇编指令的嵌入向量通过将指令分解为操作码和操作数后,利用预训练的word2vec模型生成;执行环境则以代表寄存器状态的数组形式表示,并进一步嵌入为高维向量;模型的输出是一个一维数组,表示指令执行后的语义特征和寄存器状态的变化;在训练过程中,模型每次处理控制流图cfg中的一个基本块;对于每条指令,模型接收当前指令及其对应的执行环境状态,生成一个更新后的寄存器数组,以反...

【专利技术属性】
技术研发人员:徐洋龚星宇张思聪
申请(专利权)人:贵州师范大学
类型:发明
国别省市:

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

1