期刊文献+
共找到9篇文章
< 1 >
每页显示 20 50 100
二进制代码相似性检测方法综述
1
作者 魏有缘 宋建华 张龑 《计算机科学》 北大核心 2025年第6期365-380,共16页
代码相似性检测按照研究对象可分为源代码相似性检测和二进制代码相似性检测两种,常用于恶意代码识别、漏洞搜索、版权保护等场景。基于目前国内的互联网环境,程序通常以二进制文件的形式发布,大多数程序都无法直接获得源代码,因此在软... 代码相似性检测按照研究对象可分为源代码相似性检测和二进制代码相似性检测两种,常用于恶意代码识别、漏洞搜索、版权保护等场景。基于目前国内的互联网环境,程序通常以二进制文件的形式发布,大多数程序都无法直接获得源代码,因此在软件安全领域的相关研究中,二进制代码相似性检测的应用范围相对更广。从二进制代码相似性检测的定义和实现流程出发,按照代码表征形式将其分为基于文本字符、基于代码嵌入、基于图嵌入三大类,对经典的二进制代码相似性检测方法和近5年的新方法共19篇文献进行了整理,并根据多架构、Baseline、基准数据集和检测性能对各类方法进行了分析和总结。最后,结合新方法的发展分析了当前存在的问题和未来可能的研究方向。 展开更多
关键词 二进制代码相似性检测 代码表征 软件安全 恶意代码识别 漏洞搜索
在线阅读 下载PDF
基于跨模态协同表示学习的二进制代码相似性检测方法
2
作者 杨宏宇 王云龙 +1 位作者 胡泽 成翔 《电子学报》 北大核心 2025年第4期1279-1292,共14页
二进制代码相似性检测(Binary Code Similarity Detection,BCSD)技术能够在无源代码的情况下检测二进制文件内在的安全威胁,在软件成分分析、漏洞挖掘等软件供应链安全领域中广泛应用.针对现有BCSD方法普遍忽略程序实际执行信息和局部... 二进制代码相似性检测(Binary Code Similarity Detection,BCSD)技术能够在无源代码的情况下检测二进制文件内在的安全威胁,在软件成分分析、漏洞挖掘等软件供应链安全领域中广泛应用.针对现有BCSD方法普遍忽略程序实际执行信息和局部语义信息,导致汇编指令语义表示学习效果不佳、特征提取模型的训练资源消耗过大以及相似性检测性能较差等问题,提出一种基于跨模态协同表示学习的二进制代码相似性检测方法(Cross-Modal coordinated Representation Learning for binary code similarity detection,CMRL).首先,提取汇编指令序列和编程语言片段语义间的对应关系并构建一个对比学习数据集,提出一种面向二进制代码的汇编指令-编程语言协同表示学习方法(Assembly code-Programming language Coordinated representations Learning method,APECL),将源代码的高层次语义作为监督信息,通过对比学习任务使汇编指令编码器APECL-Asm与编程语言编码器生成的特征表示在语义空间中对齐,提升APECL-Asm对汇编指令的语义表示学习效果.然后,设计一种基于图神经网络的二进制函数嵌入向量生成方法,通过语义结构感知网络对APECL-Asm提取到的语义信息和程序实际执行信息进行融合,生成函数嵌入向量.最后,通过计算函数嵌入向量之间的余弦距离对二进制代码进行相似性检测.实验结果表明,与现有方法相比,CMRL对二进制代码相似性检测的Recall@1指标提升8%~33%;针对代码混淆场景下的相似性检测任务,CMRL的Recall@1指标衰减幅度更小,具有更强的抗干扰能力. 展开更多
关键词 二进制代码相似性检测 跨模态 协同表示学习 语义结构感知网络 深度神经网络
在线阅读 下载PDF
面向代码相似性检测的相似哈希改进方法 被引量:10
3
作者 李玫 高庆 +3 位作者 马森 张世琨 胡文蕙 张兴明 《软件学报》 EI CSCD 北大核心 2021年第7期2242-2259,共18页
代码相似性检测(code similarity detection)是软件工程领域的基本任务之一,其在剽窃检测、许可证违反检测、软件复用分析以及漏洞发现等方向均起着重要作用.随着软件开源化的普及以及开源代码量的高速增长,开源代码在各个领域的应用日... 代码相似性检测(code similarity detection)是软件工程领域的基本任务之一,其在剽窃检测、许可证违反检测、软件复用分析以及漏洞发现等方向均起着重要作用.随着软件开源化的普及以及开源代码量的高速增长,开源代码在各个领域的应用日益频繁,给传统的代码相似性检测方法带来了新的挑战.现有的一些基于词法、语法、语义的检测方法存在算法较为复杂、对解析工具有依赖性、消耗资源高、可移植性差、候选对比项数量较多等问题,在大规模代码库上有一定的局限性.基于相似哈希(simhash)指纹的代码相似性检测算法将代码降维至1个指纹,能够在数据集规模较大的情况下实现快速相似文件检索,并通过海明距离阈值控制匹配结果的相似度范围.通过实验对现有的基于代码行粒度的相似哈希算法进行验证,发现其在大规模数据集下存在行覆盖问题,即高频行特征对低频行特征的覆盖现象,导致结果精确度较低.受TF-IDF算法思想启发,针对上述问题创新性地提出了分语言行筛选优化方法,通过各种语言的行筛选器对代码文件行序列进行筛选,从而消除高频出现但语义信息包含较少的行对结果的影响.对改进前后方法进行一系列对比实验,结果表明,改进后的方法在海明距离阈值为0~8的情况下都能够实现高精确度的相似文件对检索,当阈值为8时在两个数据集下的精确度较改进前的方法分别提升了98.6%和52.2%.在所建立的130万个开源项目、386486112个项目文件的大规模代码库上进行了实验,结果表明所提方法能够快速检测出待测文件的相似文件结果,平均单个文件检测时间为0.43s,并取得了97%以上的检测精度. 展开更多
关键词 代码相似性检测 代码同源分析 大数据 相似哈希 代码指纹生成
在线阅读 下载PDF
二进制代码相似性检测技术综述 被引量:12
4
作者 方磊 武泽慧 魏强 《计算机科学》 CSCD 北大核心 2021年第5期1-8,共8页
代码相似性检测常用于代码预测、知识产权保护和漏洞搜索等领域,可分为源代码相似性检测和二进制代码相似性检测。软件的源代码通常难以获得,因此针对二进制代码的相似性检测技术能够适用的场景更加广泛,学术界也先后提出了多种检测技术... 代码相似性检测常用于代码预测、知识产权保护和漏洞搜索等领域,可分为源代码相似性检测和二进制代码相似性检测。软件的源代码通常难以获得,因此针对二进制代码的相似性检测技术能够适用的场景更加广泛,学术界也先后提出了多种检测技术,文中对近年来该领域的研究进行了综述。首先总结代码相似性检测的基本流程和需要解决的难题(如跨编译器、跨编译器优化配置、跨指令架构检测);然后根据关注的代码信息的不同,将当前的二进制代码相似性检测技术分为4类,即基于文本的、基于属性度量的、基于程序逻辑的和基于语义的检测技术,并列举了部分代表性方法和工具(如Karta,discovRE,Ge-nius,Gemini,SAFE等);最后根据发展脉络和最新研究成果,对该领域的发展方向进行了分析和论述。 展开更多
关键词 软件安全 二进制程序 代码相似性检测
在线阅读 下载PDF
C/C++代码跨形态相似性检测技术研究
5
作者 王彦昕 贾鹏 +1 位作者 范希明 彭熙 《信息网络安全》 北大核心 2025年第10期1627-1638,共12页
源码二进制相似性检测在软件开发和软件安全相关的任务中起着重要的作用,如逆向工程、版权侵权检测等。目前,源码二进制相似性检测方法虽然取得了不错的效果,但大多局限在相同架构、编译器、优化级别下的二进制代码与源代码进行相似性... 源码二进制相似性检测在软件开发和软件安全相关的任务中起着重要的作用,如逆向工程、版权侵权检测等。目前,源码二进制相似性检测方法虽然取得了不错的效果,但大多局限在相同架构、编译器、优化级别下的二进制代码与源代码进行相似性检测。而在实际检测中,被检测的二进制文件常常是不同架构、编译器和优化级别的,若对此进行区分再进行检测会带来额外的时间开销,同时会给特征设计提取带来额外的挑战。为此,文章提出了一种基于中间表示的跨架构、编译器和优化级别的源码二进制相似性检测方法,该检测方法在二进制端将二进制转换为能在不同平台和编程语言之间进行代码转换的中间表示,以减少不同编译情况下同源二进制文件的语义差距,使用CodeBERT模型提取源码特征,使用BERT模型和GCN模型提取二进制文件特征,由余弦相似性计算两端相似性。为了验证该检测方法的有效性,文章通过不同编译器、优化级别和编译架构将7个组件编译成二进制文件并构造数据集,在数据集上进行了一对一检测和一对多检测两项任务,并探究了预训练、合并指令、阈值等因素对识别准确性产生的影响。实验结果和分析表明,文章提出的基于中间表示的源码二进制相似性检测方法能够有效解决多种编译情况下同源二进制函数与源码的相似性检测问题。 展开更多
关键词 跨架构 跨编译器 跨优化级别 代码相似性检测
在线阅读 下载PDF
面向函数内联场景的二进制到源代码函数相似性检测方法
6
作者 贾昂 范铭 +3 位作者 徐茜 晋武侠 王海军 刘烃 《软件学报》 北大核心 2025年第7期3003-3021,共19页
二进制到源代码函数相似性检测是软件组成成分分析的基础性工作之一.现有方法主要采用一对一的匹配策略,即使用单一的二进制函数和单一的源代码函数进行比对.然而,由于函数内联的存在,函数之间的映射关系实际上表现为一对多——单一的... 二进制到源代码函数相似性检测是软件组成成分分析的基础性工作之一.现有方法主要采用一对一的匹配策略,即使用单一的二进制函数和单一的源代码函数进行比对.然而,由于函数内联的存在,函数之间的映射关系实际上表现为一对多——单一的二进制函数能够关联至多个源代码函数.这一差异导致现有方法在函数内联场景下遭受了30%的性能损失.针对函数内联场景下的二进制到源代码函数匹配需求,提出了一种面向一对多匹配的二进制到源代码函数相似性检测方法,旨在生成源代码函数集合作为内联二进制函数的匹配对象,以弥补源代码函数库的缺失.通过一系列实验评估了方法的有效性.实验数据表明,方法不仅能够提升现有二进制到源代码函数相似性检测的能力,而且还能够找到内联的源代码函数,帮助现有工具更好地应对内联挑战. 展开更多
关键词 二进制到源代码函数相似性检测 函数内联 代码函数集合
在线阅读 下载PDF
最长公共子序列嵌入支持下的代码相似性检测
7
作者 弓媛君 黄建军 +4 位作者 游伟 石文昌 梁彬 边攀 张健 《软件学报》 2025年第11期4975-4989,共15页
最长公共子序列(longest common subsequence,LCS)是一种衡量代码相似度的可行指标.然而,经典LCS算法的时间复杂度较高,难以应对大型数据集,并且,由于代码文本序列中的词(token)本质为一种基于离散表示的编码,直接使用LCS算法无法有效... 最长公共子序列(longest common subsequence,LCS)是一种衡量代码相似度的可行指标.然而,经典LCS算法的时间复杂度较高,难以应对大型数据集,并且,由于代码文本序列中的词(token)本质为一种基于离散表示的编码,直接使用LCS算法无法有效识别文本不同但语义相似的代码片段中的关键语义.针对这两方面的不足,提出一种面向LCS的嵌入方法,将代码间的LCS计算转换为代码低维稠密嵌入向量间的数值运算,并可以利用近似最近邻算法进一步加速其计算.为此,设计了一个可嵌入的基于LCS的距离度量方法,实验证明这种代码度量在提取函数关键语义的表现上优于对比嵌入工具使用的基于文本的距离或基于树的距离.同时,为了在嵌入过程中有重点地保留代码的关键语义,构建了两种损失函数和相应的训练集,识别文本上不同但语义上相似的代码元素,使模型在检测复杂代码克隆时有更好的表现.实验证明了该方法拥有很强的可扩展性,且其对复杂克隆的检测能力也保持在很高水平.将该技术应用于相似缺陷的识别,上报了23个未知缺陷,这些缺陷已被开发人员在实际项目中确认,其中有些复杂缺陷是难以被基于文本的LCS算法检出的. 展开更多
关键词 最长公共子序列(LCS) 代码相似性检测 代码嵌入 缺陷检测 克隆检测
在线阅读 下载PDF
基于图嵌入的代码相似性度量 被引量:4
8
作者 梁瑶 谢春丽 王文捷 《计算机科学》 CSCD 北大核心 2022年第S02期801-806,共6页
近年来,代码相似性检测一直是软件工程领域的热点问题,它可以帮助代码克隆检测、代码缺陷预测等,降低软件维护成本。目前流行的代码相似性检测方法大多是借用自然语言处理方法从符号(Token)、抽象语法树(Abstract Syntax Tree,AST)等代... 近年来,代码相似性检测一直是软件工程领域的热点问题,它可以帮助代码克隆检测、代码缺陷预测等,降低软件维护成本。目前流行的代码相似性检测方法大多是借用自然语言处理方法从符号(Token)、抽象语法树(Abstract Syntax Tree,AST)等代码表征中提取源代码的文本、语法、结构等特征信息,将其映射为连续空间的实值向量,然后通过直接计算提取特征的欧氏距离、余弦值,或通过浅层神经网络模型获得代码的相似值,这些方法取得了优于传统程序静态分析的效果。但这些方法大多数是基于源代码语法层面的检测技术,未充分利用源代码的语义信息。Doc2Vec和Word2Vec虽然能够挖掘代码的词汇语义信息,但对代码的执行语义信息无能为力,针对这一问题,提出了使用控制流程图(Control Flow Graph,CFG)来表示代码的执行语义,并使用基于随机游走(Random Walk)的图嵌入方法来学习和推理代码的语义信息,进而判断源代码的功能相似性。实验结果表明,和Doc2Vec以及Word2Vec方法相比,该模型能够较精确地检测出源代码的功能相似性,其F1值相较于Doc2Vec和Word2Vec方法分别提高了16.01%和18.72%。 展开更多
关键词 控制流程图 图嵌入 随机游走 代码相似性检测
在线阅读 下载PDF
基于代码相似性的测试用例重用及生成方法 被引量:1
9
作者 刘巧韵 杨秋辉 +2 位作者 洪玫 刘美英 刘盈盈 《计算机工程与设计》 北大核心 2023年第10期2950-2955,共6页
为在测试用例自动化生成中有效利用现有用例信息,降低测试用例生成成本,提高生成效率,提出一种基于代码相似性的测试用例重用及生成方法。设计基于文本和度量的被测代码相似性检测方法,分别从语法和语义上检测并划分相似类型;针对不同... 为在测试用例自动化生成中有效利用现有用例信息,降低测试用例生成成本,提高生成效率,提出一种基于代码相似性的测试用例重用及生成方法。设计基于文本和度量的被测代码相似性检测方法,分别从语法和语义上检测并划分相似类型;针对不同相似类型,采用更名重用和补充重用生成测试用例。将代码相似性应用于测试用例生成,综合考虑代码的语法、语义等多维相似信息,提升代码相似性检测的准确性,能更有效运用重用技术提升测试用例生成效率。实验结果表明,所提方法具有更高的重用召回率和重用精度,在相同时间成本下生成的测试用例覆盖率更高。 展开更多
关键词 单元测试 测试用例自动化生成 测试用例重用 代码相似性检测 代码克隆 语法相似性 语义相似性
在线阅读 下载PDF
上一页 1 下一页 到第
使用帮助 返回顶部