期刊文献+
共找到13篇文章
< 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
代码相似性检测技术综述 被引量:3
3
作者 孙祥杰 魏强 +1 位作者 王奕森 杜江 《计算机应用》 CSCD 北大核心 2024年第4期1248-1258,共11页
代码复用为软件开发带来便利的同时也引入了安全风险,如加速漏洞传播、代码恶意抄袭等,代码相似性检测技术通过分析代码间词法、语法、语义等信息计算代码相似程度,是判断代码复用最有效的技术之一,也是近年发展较快的程序安全分析技术... 代码复用为软件开发带来便利的同时也引入了安全风险,如加速漏洞传播、代码恶意抄袭等,代码相似性检测技术通过分析代码间词法、语法、语义等信息计算代码相似程度,是判断代码复用最有效的技术之一,也是近年发展较快的程序安全分析技术。首先,系统梳理代码相似性检测的近期技术进展,根据目标代码是否开源,将代码相似性检测技术分为源码相似性检测和二进制代码相似性检测,又根据编程语言、指令集的不同进行二次细分;其次,总结每一种技术的思路和研究成果,分析机器学习技术在代码相似性检测领域成功的案例,并讨论现有技术的优势与不足;最后,给出代码相似性检测技术的发展趋势,为相关研究人员提供参考。 展开更多
关键词 二进制代码相似性 代码相似性 跨语言代码相似性 深度学习 代码克隆
在线阅读 下载PDF
面向代码相似性检测的相似哈希改进方法 被引量:10
4
作者 李玫 高庆 +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
基于神经网络与代码相似性的静态漏洞检测 被引量:16
5
作者 夏之阳 易平 杨涛 《计算机工程》 CAS CSCD 北大核心 2019年第12期141-146,共6页
静态漏洞检测通常只针对文本进行检测,执行效率高但是易产生误报。针对该问题,结合神经网络技术,提出一种基于代码相似性的漏洞检测方法。通过对程序源代码进行敏感函数定位、程序切片和变量替换等数据预处理操作,获取训练所用数据。构... 静态漏洞检测通常只针对文本进行检测,执行效率高但是易产生误报。针对该问题,结合神经网络技术,提出一种基于代码相似性的漏洞检测方法。通过对程序源代码进行敏感函数定位、程序切片和变量替换等数据预处理操作,获取训练所用数据。构建基于Bi-LSTM的相似性判别模型,设定漏洞模板数据库,将待测代码与漏洞模板作比对以判别其是否存在漏洞。实验结果表明,该方法的准确率可达88.1%,误报率低至4.7%。 展开更多
关键词 软件安全 静态漏洞检测 深度学习 神经网络 代码相似性
在线阅读 下载PDF
二进制代码相似性检测技术综述 被引量:12
6
作者 方磊 武泽慧 魏强 《计算机科学》 CSCD 北大核心 2021年第5期1-8,共8页
代码相似性检测常用于代码预测、知识产权保护和漏洞搜索等领域,可分为源代码相似性检测和二进制代码相似性检测。软件的源代码通常难以获得,因此针对二进制代码的相似性检测技术能够适用的场景更加广泛,学术界也先后提出了多种检测技术... 代码相似性检测常用于代码预测、知识产权保护和漏洞搜索等领域,可分为源代码相似性检测和二进制代码相似性检测。软件的源代码通常难以获得,因此针对二进制代码的相似性检测技术能够适用的场景更加广泛,学术界也先后提出了多种检测技术,文中对近年来该领域的研究进行了综述。首先总结代码相似性检测的基本流程和需要解决的难题(如跨编译器、跨编译器优化配置、跨指令架构检测);然后根据关注的代码信息的不同,将当前的二进制代码相似性检测技术分为4类,即基于文本的、基于属性度量的、基于程序逻辑的和基于语义的检测技术,并列举了部分代表性方法和工具(如Karta,discovRE,Ge-nius,Gemini,SAFE等);最后根据发展脉络和最新研究成果,对该领域的发展方向进行了分析和论述。 展开更多
关键词 软件安全 二进制程序 代码相似性检测
在线阅读 下载PDF
基于图嵌入的代码相似性度量 被引量:4
7
作者 梁瑶 谢春丽 王文捷 《计算机科学》 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
改进的卷积神经网络源代码相似性度量方法 被引量:6
8
作者 谢春丽 蔺疆旭 +2 位作者 刘小洋 张文斌 黄军伟 《应用数学和力学》 CSCD 北大核心 2019年第11期1235-1245,共11页
源代码相似性是指不同代码段功能上的相似程度,是软件工程领域一项重要的研究问题.现有的方法主要从文本、结构两方面,利用代码的统计学特征计算相似性,其最大缺点就是无法表达代码的语义特征.为解决此类问题,提出了一种融合统计信息的... 源代码相似性是指不同代码段功能上的相似程度,是软件工程领域一项重要的研究问题.现有的方法主要从文本、结构两方面,利用代码的统计学特征计算相似性,其最大缺点就是无法表达代码的语义特征.为解决此类问题,提出了一种融合统计信息的卷积神经网络(statistics information for code embedding-convolutional neural networks,SICE-CNN)源代码相似性检测方法.该方法首先通过词嵌入对源代码进行信息表示,获取代码的词嵌入向量信息;其次,构建CNN训练模型学习源代码文档的嵌入表示;最后,计算源代码对的余弦相似值.实验表明,该方法和一般词嵌入方法相比提高了一定的性能,能较好地检测源代码的语义相似性. 展开更多
关键词 深度学习 卷积神经网络 代码相似性 词嵌入
在线阅读 下载PDF
基于代码相似性的测试用例重用及生成方法
9
作者 刘巧韵 杨秋辉 +2 位作者 洪玫 刘美英 刘盈盈 《计算机工程与设计》 北大核心 2023年第10期2950-2955,共6页
为在测试用例自动化生成中有效利用现有用例信息,降低测试用例生成成本,提高生成效率,提出一种基于代码相似性的测试用例重用及生成方法。设计基于文本和度量的被测代码相似性检测方法,分别从语法和语义上检测并划分相似类型;针对不同... 为在测试用例自动化生成中有效利用现有用例信息,降低测试用例生成成本,提高生成效率,提出一种基于代码相似性的测试用例重用及生成方法。设计基于文本和度量的被测代码相似性检测方法,分别从语法和语义上检测并划分相似类型;针对不同相似类型,采用更名重用和补充重用生成测试用例。将代码相似性应用于测试用例生成,综合考虑代码的语法、语义等多维相似信息,提升代码相似性检测的准确性,能更有效运用重用技术提升测试用例生成效率。实验结果表明,所提方法具有更高的重用召回率和重用精度,在相同时间成本下生成的测试用例覆盖率更高。 展开更多
关键词 单元测试 测试用例自动化生成 测试用例重用 代码相似性检测 代码克隆 语法相似性 语义相似性
在线阅读 下载PDF
面向函数内联场景的二进制到源代码函数相似性检测方法
10
作者 贾昂 范铭 +3 位作者 徐茜 晋武侠 王海军 刘烃 《软件学报》 北大核心 2025年第7期3003-3021,共19页
二进制到源代码函数相似性检测是软件组成成分分析的基础性工作之一.现有方法主要采用一对一的匹配策略,即使用单一的二进制函数和单一的源代码函数进行比对.然而,由于函数内联的存在,函数之间的映射关系实际上表现为一对多——单一的... 二进制到源代码函数相似性检测是软件组成成分分析的基础性工作之一.现有方法主要采用一对一的匹配策略,即使用单一的二进制函数和单一的源代码函数进行比对.然而,由于函数内联的存在,函数之间的映射关系实际上表现为一对多——单一的二进制函数能够关联至多个源代码函数.这一差异导致现有方法在函数内联场景下遭受了30%的性能损失.针对函数内联场景下的二进制到源代码函数匹配需求,提出了一种面向一对多匹配的二进制到源代码函数相似性检测方法,旨在生成源代码函数集合作为内联二进制函数的匹配对象,以弥补源代码函数库的缺失.通过一系列实验评估了方法的有效性.实验数据表明,方法不仅能够提升现有二进制到源代码函数相似性检测的能力,而且还能够找到内联的源代码函数,帮助现有工具更好地应对内联挑战. 展开更多
关键词 二进制到源代码函数相似性检测 函数内联 代码函数集合
在线阅读 下载PDF
融合句嵌入模型和代码特征的补丁验证方法
11
作者 蒋婷婷 姜淑娟 韩威 《电子学报》 EI CAS CSCD 北大核心 2023年第12期3450-3456,共7页
补丁验证常用运行测试套件的方法来验证补丁正确性,然而自动修复技术生成的补丁往往数量巨大,而将每个补丁依次通过测试套件则会产生难以承受的开销.针对该问题,本文提出一个由句嵌入模型InferSent和支持向量机分类器组成的静态补丁验... 补丁验证常用运行测试套件的方法来验证补丁正确性,然而自动修复技术生成的补丁往往数量巨大,而将每个补丁依次通过测试套件则会产生难以承受的开销.针对该问题,本文提出一个由句嵌入模型InferSent和支持向量机分类器组成的静态补丁验证方法.使用InferSent提取代码静态特征并通过支持向量机分类器来预测补丁正确性.该方法更加关注代码的静态特征信息,通过对特征的提取分析,无需运行测试套件即可有效地预测自动修复工具生成的补丁的正确性.本文在多个自动修复工具生成的补丁集合上进行了验证.实验结果表明,在修复工具生成的补丁集合上,本文提出的静态补丁验证方法对补丁预测的F1值达到71.89%,相比其他两种最新静态补丁验证方法分别提高11.64%和6.43%,并在五项评价指标上均优于对比模型.表明该方法可以在不运行测试套件的情况下正确预测补丁,且具有良好的泛化能力. 展开更多
关键词 程序自动修复 补丁验证 代码静态特征 句嵌入技术 支持向量机 代码相似性
在线阅读 下载PDF
结合Doc2Vec和BERT嵌入技术的补丁验证方法 被引量:5
12
作者 黄颖 姜淑娟 蒋婷婷 《计算机科学》 CSCD 北大核心 2022年第11期83-89,共7页
自动程序修复是近年来的研究热点并取得了一定的进展。现有的自动程序修复方法大多利用测试套件来验证补丁正确性。然而,使用测试套件验证自动程序修复方法生成的大量候选补丁不仅会造成巨大的开销,不完美的测试套件还会导致补丁的过拟... 自动程序修复是近年来的研究热点并取得了一定的进展。现有的自动程序修复方法大多利用测试套件来验证补丁正确性。然而,使用测试套件验证自动程序修复方法生成的大量候选补丁不仅会造成巨大的开销,不完美的测试套件还会导致补丁的过拟合问题,因此如何提高补丁验证效率、有效验证补丁正确性成为亟待解决的问题。为了降低补丁验证开销并提高补丁正确率,提出了结合两种嵌入技术验证补丁正确性的方法。该方法首先利用Doc2Vec计算补丁与错误代码的相似性,然后使用一个基于BERT模型的分类器过滤通过相似性筛选出的补丁中的错误补丁。为了验证所提方法的有效性,基于5个开源的Java缺陷库进行实验,结果表明该方法能够有效地验证补丁的正确性并提高验证效率。 展开更多
关键词 自动程序修复 补丁验证 代码相似性 嵌入技术
在线阅读 下载PDF
基于可解释性人工智能的软件工程技术方法综述 被引量:7
13
作者 邢颖 《计算机科学》 CSCD 北大核心 2023年第5期3-11,共9页
在信息处理与决策方面,人工智能(AI)方法相比传统方法表现出了优越的性能。但在将AI模型投入生产时,其输出结果并不能保证完全准确,因此AI技术的“不可信”逐渐成为AI大规模落地的一大阻碍。目前人工智能被逐步应用到软件工程中,其过度... 在信息处理与决策方面,人工智能(AI)方法相比传统方法表现出了优越的性能。但在将AI模型投入生产时,其输出结果并不能保证完全准确,因此AI技术的“不可信”逐渐成为AI大规模落地的一大阻碍。目前人工智能被逐步应用到软件工程中,其过度依赖历史数据和决策不透明等弊端愈发明显,因此对决策结果做出合理的解释至关重要。文中对可解释性人工智能的基本概念、可解释模型的评估进行了详细阐述,探讨了软件工程与可解释人工智能结合的可行性;同时调研了相关文献,对软件工程中的恶意软件检测、高风险组件检测、软件负载分配、二进制代码相似性分析这4个人工智能的典型应用方向做出分析,讨论如何通过可解释AI揭示系统输出的正确程度,进而提高系统决策的可信度;最后展望未来软件工程与可解释人工智能相结合的研究方向。 展开更多
关键词 可解释人工智能 软件工程 恶意软件检测 代码相似性分析
在线阅读 下载PDF
上一页 1 下一页 到第
使用帮助 返回顶部