期刊文献+
共找到16篇文章
< 1 >
每页显示 20 50 100
SSA-HIAST: A Novel Framework for Code Clone Detection
1
作者 Neha Saini Sukhdip Singh 《Computers, Materials & Continua》 SCIE EI 2022年第5期2999-3017,共19页
In the recent era of software development,reusing software is one of the major activities that is widely used to save time.To reuse software,the copy and paste method is used and this whole process is known as code cl... In the recent era of software development,reusing software is one of the major activities that is widely used to save time.To reuse software,the copy and paste method is used and this whole process is known as code cloning.This activity leads to problems like difficulty in debugging,increase in time to debug and manage software code.In the literature,various algorithms have been developed to find out the clones but it takes too much time as well as more space to figure out the clones.Unfortunately,most of them are not scalable.This problem has been targeted upon in this paper.In the proposed framework,authors have proposed a new method of identifying clones that takes lesser time to find out clones as compared with many popular code clone detection algorithms.The proposed framework has also addressed one of the key issues in code clone detection i.e.,detection of near-miss(Type-3)and semantic clones(Type-4)with significant accuracy of 95.52%and 92.80%respectively.The present study is divided into two phases,the first method converts any code into an intermediate representation form i.e.,Hashinspired abstract syntax trees.In the second phase,these abstract syntax trees are passed to a novel approach“Similarity-based self-adjusting hash inspired abstract syntax tree”algorithm that helps in knowing the similarity level of codes.The proposed method has shown a lot of improvement over the existing code clones identification methods. 展开更多
关键词 code cloning clone detection hash inspired abstract syntax tree ROTATIONS hybrid framework
下载PDF
基于CB-Attention的JavaScript恶意混淆代码检测方法
2
作者 徐鑫 张志宁 +2 位作者 吕云山 李立 郑玉杰 《计算机工程与设计》 北大核心 2024年第8期2298-2305,共8页
当今JavaScript代码混淆方法日益多样,现有检测方法在对混淆代检测时会出现漏报和误报的情况,为解决该问题,提出一种基于CB-Attention的JavaScript恶意代码检测方法。由SDPCNN模型和BiLSTM+Attention模型构成,SDPCNN对短距离间的语义特... 当今JavaScript代码混淆方法日益多样,现有检测方法在对混淆代检测时会出现漏报和误报的情况,为解决该问题,提出一种基于CB-Attention的JavaScript恶意代码检测方法。由SDPCNN模型和BiLSTM+Attention模型构成,SDPCNN对短距离间的语义特征信息进行提取,BiLSTM+Attention获取JavaScript代码中长距离间的语义信息特征。为验证所提方法的有效性,将该方法与其它方法进行对比,对比结果表明,该方法具有较好的检测效果,F1-Score可达98.78%。 展开更多
关键词 JavaScript恶意代码 混淆代码 检测模型 增强深度金字塔卷积神经网络 注意力网络 双向长短时记忆网络 长距离特征信息 抽象语法树
下载PDF
基于依赖增强的分层抽象语法树的代码克隆检测
3
作者 万泽轩 谢春丽 +1 位作者 吕泉润 梁瑶 《计算机应用》 CSCD 北大核心 2024年第4期1259-1268,共10页
在软件工程领域,基于语义相似的代码克隆检测方法可以降低软件维护的成本并预防系统漏洞,抽象语法树(AST)作为典型的代码抽象表征形式,已成功应用于多种程序语言的代码克隆检测任务,然而现有工作主要利用原始AST提取代码的语义,没有深... 在软件工程领域,基于语义相似的代码克隆检测方法可以降低软件维护的成本并预防系统漏洞,抽象语法树(AST)作为典型的代码抽象表征形式,已成功应用于多种程序语言的代码克隆检测任务,然而现有工作主要利用原始AST提取代码的语义,没有深入挖掘AST中的深层语义和结构信息。针对上述问题,提出一种基于依赖增强的分层抽象语法树(DEHAST)的代码克隆检测方法。首先,对AST进行分层处理,将AST划分得到不同的语义层次;其次,为AST的不同层次添加相应的依赖增强边构建DEHAST,将简单的AST变成具有更丰富程序语义的异构图;最后,使用图匹配网络(GMN)模型检测异构图的相似性,实现代码克隆检测。在BigCloneBench和Google Code Jam两个数据集上的实验结果显示,DEHAST能够检测100%的Type-1和Type-2代码克隆、99%的Type-3代码克隆和97%的Type-4代码克隆;与基于树的方法ASTNN(AST-based Neural Network)相比,F1分数均提高了4个百分点,验证了DEHAST可以较好地完成代码语义克隆检测。 展开更多
关键词 代码克隆检测 语义克隆 抽象语法树 深度学习 图匹配网络
下载PDF
代码缺陷与代码味道的自动探测与优化研究 被引量:5
4
作者 刘伟 刘宏韬 胡志刚 《计算机应用研究》 CSCD 北大核心 2014年第1期170-176,共7页
为了实现代码缺陷与代码味道的自动探测与优化,提升优化与重构的效率,设计并开发了一套名为SCORT的源代码优化与重构工具。SCORT将源代码解析为抽象语法树,再探测其中存在的代码缺陷和代码味道,最后对缺陷和味道进行自动优化和重构。在S... 为了实现代码缺陷与代码味道的自动探测与优化,提升优化与重构的效率,设计并开发了一套名为SCORT的源代码优化与重构工具。SCORT将源代码解析为抽象语法树,再探测其中存在的代码缺陷和代码味道,最后对缺陷和味道进行自动优化和重构。在SCORT中已经实现了对15种常见代码缺陷和六种常见代码味道的检测以及自动优化与重构,提供了多种代码味道的自动重构算法,且具有良好的可扩展性。通过对三个待测项目的探测和优化实验结果表明,对于常见代码缺陷的探测和优化,SCORT的精确率、召回率和准确率均可达100%;对于部分常见的代码味道,SCORT尚需进一步完善。SCORT有助于开发人员提高代码质量,减少源代码中存在的缺陷和味道。 展开更多
关键词 代码缺陷 代码味道 探测 优化 重构 抽象语法树
下载PDF
基于词向量模型的漏洞检测方法
5
作者 肖巍 胡景浩 +2 位作者 侯正章 王涛 潘超 《吉林大学学报(理学版)》 CAS 北大核心 2023年第6期1358-1366,共9页
针对漏洞检测领域面临的实验平台不统一、数据集异构等问题,研究词向量模型在C/C++函数漏洞检测方面的应用.用5种词向量模型对源代码生成的抽象语法树结构进行知识表示,用6种神经网络模型进行漏洞检测,实验结果表明,函数级代码具有浅层... 针对漏洞检测领域面临的实验平台不统一、数据集异构等问题,研究词向量模型在C/C++函数漏洞检测方面的应用.用5种词向量模型对源代码生成的抽象语法树结构进行知识表示,用6种神经网络模型进行漏洞检测,实验结果表明,函数级代码具有浅层的语义关系,代码块内部联系紧密. 展开更多
关键词 词向量模型 漏洞检测 抽象语法树 代码表征 神经网络
下载PDF
C++代码缺陷自动检测工具的研究与实现 被引量:5
6
作者 古可 刘超 金茂忠 《计算机应用研究》 CSCD 北大核心 2009年第5期1628-1631,共4页
通过编译的C++程序代码并不一定保证代码中不存在缺陷。代码中可能依然隐含了安全、设计或是风格上的缺陷,从而导致程序运行时出现内存泄露、指针误用等现象,或导致程序代码不清晰、可读性差。为了有效查找这些缺陷,探讨了可定制缺陷规... 通过编译的C++程序代码并不一定保证代码中不存在缺陷。代码中可能依然隐含了安全、设计或是风格上的缺陷,从而导致程序运行时出现内存泄露、指针误用等现象,或导致程序代码不清晰、可读性差。为了有效查找这些缺陷,探讨了可定制缺陷规则的C++代码缺陷自动检测技术,介绍了两种缺陷定位方法,给出了一种基于XPath技术的缺陷规则定制方法,设计并实现了一种代码缺陷自动检测工具CDD(C++defect detec-tor),并通过实验证明了缺陷定位方法的有效性以及CDD的易用性。 展开更多
关键词 静态分析 抽象语法树 缺陷检测 规则扩展
下载PDF
基于程序向量树的代码克隆检测 被引量:6
7
作者 曾杰 贲可荣 +2 位作者 张献 李晓伟 周全 《计算机科学与探索》 CSCD 北大核心 2020年第10期1656-1669,共14页
代码克隆能够加速软件开发但是也会导致缺陷重复发生和软件质量问题。部分类型的代码克隆在字面上相似度低,导致识别困难。针对这一问题,提出一种基于程序向量树的代码克隆检测方法。首先,基于统计语言模型抽取词法单元的特征表示,分析... 代码克隆能够加速软件开发但是也会导致缺陷重复发生和软件质量问题。部分类型的代码克隆在字面上相似度低,导致识别困难。针对这一问题,提出一种基于程序向量树的代码克隆检测方法。首先,基于统计语言模型抽取词法单元的特征表示,分析不同字面单词之间的语义相似性;接着,通过语法分析提取程序的抽象语法树(AST),为叶子节点赋予对应字面单词的特征表示,将抽象语法树转化为程序向量树;最后,提出一种加权编码规则,在考虑区分不同树节点重要程度的基础上,将程序向量树编码为定长向量,而具有相似向量表示的代码片段被判定为代码克隆。实验结果表明,在真实代码克隆的大规模标准数据集BigCloneBench上,针对在字面上相似度较低的Moderately Type-3和Type-4类型克隆进行检测时,该方法均优于当前的主流方法,包括NiCad、Deckard、SourcererCC和Oreo等,证实了该方法的有效性。 展开更多
关键词 代码克隆 代码克隆检测 抽象语法树(AST) 程序向量树
下载PDF
基于结构化文本及代码度量的漏洞检测方法 被引量:6
8
作者 杨宏宇 应乐意 张良 《湖南大学学报(自然科学版)》 EI CAS CSCD 北大核心 2022年第4期58-68,共11页
目前的源代码漏洞检测方法大多仅依靠单一特征进行检测,表征的维度单一导致方法效率低.针对上述问题提出一种基于结构化文本及代码度量的漏洞检测方法,在函数级粒度进行漏洞检测.利用源代码结构化文本信息及代码度量结果作为特征,通过... 目前的源代码漏洞检测方法大多仅依靠单一特征进行检测,表征的维度单一导致方法效率低.针对上述问题提出一种基于结构化文本及代码度量的漏洞检测方法,在函数级粒度进行漏洞检测.利用源代码结构化文本信息及代码度量结果作为特征,通过构造基于自注意力机制的神经网络捕获结构化文本信息中的长期依赖关系,以拟合结构化文本和漏洞存在之间的联系并转化为漏洞存在的概率.采用深度神经网络对代码度量的结果进行特征学习以拟合代码度量值与漏洞存在的关系,并将其拟合的结果转化为漏洞存在的概率.采用支持向量机对由上述两种表征方式获得的漏洞存在概率做进一步的决策分类并获得漏洞检测的最终结果.为验证该方法的漏洞检测性能,针对存在不同类型漏洞的11种源代码样本进行漏洞检测实验,该方法对每种漏洞的平均检测准确率为97.96%,与现有基于单一表征的漏洞检测方法相比,该方法的检测准确率提高了4.89%~12.21%,同时,该方法的漏报率和误报率均保持在10%以内. 展开更多
关键词 漏洞检测 结构化表征 抽象语法树 代码度量 深度神经网络
下载PDF
一种改进的基于文本的重复代码自动识别方法 被引量:2
9
作者 刘伟 宾航飞 胡志刚 《软件》 2018年第10期68-73,共6页
代码味道的识别与自动重构是近年来软件工程的热点领域之一,而重复代码是一种在软件工程中较为常见的代码味道。本文在基于文本的重复代码识别方法的基础上,通过词法分析对特定的Token作出处理后再对源代码进行对比,最后通过语法树的对... 代码味道的识别与自动重构是近年来软件工程的热点领域之一,而重复代码是一种在软件工程中较为常见的代码味道。本文在基于文本的重复代码识别方法的基础上,通过词法分析对特定的Token作出处理后再对源代码进行对比,最后通过语法树的对比来对结果进行过滤以降低误报率。测试结果表明该方法对于重复代码有着较好的识别效果。对重复代码的自动识别算法研究有着借鉴意义,在软件的质量、维护等领域上也具有广泛的应用需求。 展开更多
关键词 重复代码 代码味道 自动识别 抽象语法树
下载PDF
基于Token语义构建的代码克隆检测 被引量:1
10
作者 王文杰 徐云 《计算机系统应用》 2022年第11期60-67,共8页
传统的基于Token的克隆检测方法利用代码字符串的序列化特性,可以在大型代码仓中快速检测克隆.但是与基于抽象语法树(AST)、程序依赖图(PDG)的方法相比,由于缺少语法及语义信息,针对文本有较大差异的克隆代码检测困难.为此,提出一种赋... 传统的基于Token的克隆检测方法利用代码字符串的序列化特性,可以在大型代码仓中快速检测克隆.但是与基于抽象语法树(AST)、程序依赖图(PDG)的方法相比,由于缺少语法及语义信息,针对文本有较大差异的克隆代码检测困难.为此,提出一种赋予语义信息的Token克隆检测方法.首先,分析抽象语法树,使用AST路径抽象位于叶子节点的Token的语义信息;然后,在函数名和类型名角色的Token上建立低成本索引,达到快速并有效地筛选候选克隆片段的目的.最后,使用赋予语义信息的Token判定代码块之间的相似性.在公开的大规模数据集BigCloneBench实验结果表明,该方法在文本相似度较低的Moderately Type-3和Weakly Type-3/Type-4类型克隆上显著优于主流方法,包括NiCad、Deckard、CCAligner等,同时在大型代码仓上需要更少的检测时间. 展开更多
关键词 代码克隆检测 抽象语法树 语义信息 高效索引 源代码
下载PDF
基于Transformer和卷积神经网络的代码克隆检测 被引量:1
11
作者 贲可荣 杨佳辉 +1 位作者 张献 赵翀 《郑州大学学报(工学版)》 CAS 北大核心 2023年第6期12-18,共7页
基于深度学习的代码克隆检测方法往往作用在代码解析的词序列上或是整棵抽象语法树上,使用基于循环神经网络的时间序列模型提取特征,这会遗漏源代码的重要语法语义信息并诱发梯度消失。针对这一问题,提出一种基于Transformer和卷积神经... 基于深度学习的代码克隆检测方法往往作用在代码解析的词序列上或是整棵抽象语法树上,使用基于循环神经网络的时间序列模型提取特征,这会遗漏源代码的重要语法语义信息并诱发梯度消失。针对这一问题,提出一种基于Transformer和卷积神经网络的代码克隆检测方法(TCCCD)。首先,TCCCD将源代码表示成抽象语法树,并将抽象语法树切割成语句子树输入给神经网络,其中,语句子树由先序遍历得到的语句结点序列构成,蕴含了代码的结构和层次化信息。其次,在神经网络设计方面,TCCCD使用Transformer的Encoder部分提取代码的全局信息,再利用卷积神经网络捕获代码的局部信息。再次,融合2个不同网络提取出的特征,学习得到蕴含词法、语法和结构信息的代码向量表示。最后,采用两段代码向量的欧氏距离表征语义关联程度,训练一个分类器检测代码克隆。实验结果表明:在OJClone数据集上,精度、召回率、F 1值分别能达到98.9%、98.1%和98.5%;在BigCloneBench数据集上,精度、召回率、F 1值分别能达到99.1%、91.5%和94.2%。与其他方法对比,精度、召回率、F 1值均有提升,所提方法能够有效检测代码克隆。 展开更多
关键词 代码克隆检测 抽象语法树(AST) TRANSFORMER 卷积神经网络 代码特征提取
下载PDF
基于语义分析的恶意JavaScript代码检测方法 被引量:7
12
作者 邱瑶瑶 方勇 +2 位作者 黄诚 刘亮 张星 《四川大学学报(自然科学版)》 CAS CSCD 北大核心 2019年第2期273-278,共6页
JavaScript是一种动态脚本语言,被用于提高网页的交互能力.然而攻击者利用它的动态性在网页中执行恶意代码,构成了巨大威胁.传统的基于静态特征的检测方式难以检测经过混淆后的恶意代码,而基于动态分析检测的方式存在效率低等问题.本文... JavaScript是一种动态脚本语言,被用于提高网页的交互能力.然而攻击者利用它的动态性在网页中执行恶意代码,构成了巨大威胁.传统的基于静态特征的检测方式难以检测经过混淆后的恶意代码,而基于动态分析检测的方式存在效率低等问题.本文提出了一种基于语义分析的静态检测模型,通过提取抽象语法树的词法单元序列特征,使用word2vec训练词向量模型,将生成的序列向量特征输入到LSTM网络中检测恶意JavaScript脚本.实验结果表明,该模型能够高效检测混淆的恶意JavaScript代码,模型的精确率达99.94%,召回率为98.33%. 展开更多
关键词 恶意JavaScript代码检测 抽象语法树 长短时记忆网络 深度学习
下载PDF
基于AST的程序静态分析工具的研究与实现
13
作者 陈平 王成耀 《微计算机信息》 北大核心 2007年第24期189-190,120,共3页
本文给出了以抽象语法树为基础的软件静态分析工具的体系结构,介绍了该工具中各个模块的设计与实现方法,着重于规则库的设计,以及利用定义好的规则实现自动化的代码检测的过程。
关键词 静态分析 代码检测 抽象语法树
下载PDF
CLPDetector:一种基于伪孪生网络的跨语言代码抄袭检测工具 被引量:1
14
作者 李国繁 张峰 刘聪 《小型微型计算机系统》 CSCD 北大核心 2022年第7期1562-1568,共7页
近年来,随着不同编程语言代码自动转换工具的出现,跨语言的代码抄袭检测问题受到了越来越多的关注.现有跨语言代码抄袭检测主要包括传统的基于中间特征的检测方法和近年来出现的基于机器学习的检测方法,后者在检测模型训练完成之后具有... 近年来,随着不同编程语言代码自动转换工具的出现,跨语言的代码抄袭检测问题受到了越来越多的关注.现有跨语言代码抄袭检测主要包括传统的基于中间特征的检测方法和近年来出现的基于机器学习的检测方法,后者在检测模型训练完成之后具有更好的检测速度,是当前跨语言代码抄袭检测的研究热点.然而,现有的基于机器学习的跨语言抄袭检测方法大多将代码作为文本来处理,未考虑代码的结构特征.结合代码基于抽象语法树的结构特征,本文提出了一个基于伪孪生神经网络框架的跨语言抄袭检测工具CLPDetector.该工具将训练数据中的源代码对转换成对应的抽象语法树,基于抽象语法树生成代码的向量表示,然后将结合BiLSTM、CNN和Attention的深度神经网络嵌入到伪孪生网络架构中训练抄袭检测模型,从而实现了跨语言代码抄袭的检测.为了提高检测精度,首先,在训练检测模型前,利用基于抽象语法树的skip-gram算法对词向量进行了预训练,并基于程序依赖图删除了训练数据集代码中的冗余代码.其次,在代码抄袭检测阶段,提出了一个基于属性计数的过滤器,用以排除不可能抄袭的代码对,提高检测效率.实验中基于一个开源的数据集,以Java代码和Python代码为例对CLPDetector的检测效果进行了验证.结果表明,在精确率和F1值方面,CLPDetector比基于属性计数的工具CLCDSA分别高7%和3%,比单纯使用BiLSTM的检测工具ASTLeaner分别高10%和8%. 展开更多
关键词 代码抄袭检测 跨语言 抽象语法树 伪孪生网络
下载PDF
基于抽象语法树的代码抄袭检测方法的改进 被引量:1
15
作者 刘飞翔 龙冬冬 +1 位作者 欧幸茹 陈昌奉 《吉首大学学报(自然科学版)》 CAS 2022年第6期20-25,共6页
针对传统基于抽象语法树的代码抄袭检测方法中存在的检测准确率不高及无法检测语义层面抄袭的问题,设计了一种基于改进抽象语法树的代码抄袭检测方法,该方法通过TF-IDF加权简化的语法树提高检测准确率.利用加权简化的抽象语法树设计特... 针对传统基于抽象语法树的代码抄袭检测方法中存在的检测准确率不高及无法检测语义层面抄袭的问题,设计了一种基于改进抽象语法树的代码抄袭检测方法,该方法通过TF-IDF加权简化的语法树提高检测准确率.利用加权简化的抽象语法树设计特征提取和相似度计算方法实现对语义抄袭的部分检测,实验结果表明,该改进方法比传统的基于抽象语法树的检测方法的准确率更高,且能有效检测出部分基于语义层面的代码抄袭. 展开更多
关键词 代码抄袭 抄袭检测 抽象语法树
下载PDF
基于代码相似性算法的敌对题发现问题研究
16
作者 肖崇星 李郴 曹晓洒 《无线互联科技》 2017年第1期137-139,共3页
试卷中可能出现的敌对题问题,是影响试卷质量的一个重要因素,针对这一问题,文章在分析了C语言试卷中读程序题和编程题的特点及研究了常用程序代码相似性检测算法的基础上,给出了一种基于抽象语法树的敌对题发现算法,希望能较好地解决C... 试卷中可能出现的敌对题问题,是影响试卷质量的一个重要因素,针对这一问题,文章在分析了C语言试卷中读程序题和编程题的特点及研究了常用程序代码相似性检测算法的基础上,给出了一种基于抽象语法树的敌对题发现算法,希望能较好地解决C语言自动组卷系统中出现的敌对题问题,从而进一步提高C语言自动组卷系统的组卷质量。 展开更多
关键词 敌对题 代码相似性检测 抽象语法树
下载PDF
上一页 1 下一页 到第
使用帮助 返回顶部