首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 375 毫秒
1.
在软件开发过程中绝大多数克隆代码集中在函数内部,为了更加快速有效地检测出克隆代码,提出了一种基于函数内部特征矩阵的代码克隆检测算法。该算法通过提取函数内部特征,从而达到将具体代码的比较转化为对特征矩阵进行相似度计算。实验结果表明,该算法可以检测出所有克隆函数,并与基于字符串代码克隆检测算法和基于串匹配的程序代码相似性识别方法相比,该算法在运行时间及精度上均优于基于字符串代码克隆检测算法和基于串匹配的程序代码相似性识别方法。其次,通过使用N-grams算法对函数名进行相似度检测,使得该算法在运行效率上得到了显著提升。  相似文献   

2.
大型软件系统中的代码复制和修改现象可能导致程序缺陷的扩大以及无用代码的存在,克隆代码检测分析则有助于抽取可复用的软件组件和模式,在软件重构和软件演化中起重要的作用。在给出了一种基于子图同构进行克隆代码检测的方法基础上,加入依赖边类型约束求近似解的算法,以改善算法的时间复杂性。  相似文献   

3.
代码溯源是开源软件复用中的常见实践,溯源过程依赖于高效的程序分析方法支撑。现有的程序分析方法主要识别完整的语法结构,分析时间依赖于整体代码规模,缺乏增量分析能力,难以满足大规模开源代码仓库的高效分析需求。针对开源代码仓库中相邻快照间高度相似的特点,该文提出了一种有效的增量分析方法,仅对快照中变更的代码进行分析,从而有效减少分析规模。首先解析文件快照获得历次代码的修改内容,其次设计映射算法将上述修改内容映射成完整的、可分析的函数,最后将上述函数转化为指纹进行函数比对。与传统分析方法相比,该文方法有效减少了开源代码仓库的分析规模,加快了函数比对速度,能更好地支撑代码溯源等开源软件复用需求。  相似文献   

4.
基于AST的克隆序列与克隆类识别   总被引:2,自引:0,他引:2  
为了减少代码冗余,改善程序结构,提出一种新的基于抽象语法的代码克隆识别方法,归纳出常见的代码克隆形式并给出相应的重构技术.用二叉树表示源程序的抽象语法(BAST),逐条判断各语句BAST子树的同构性,识别出相似的语句序列作为克隆序列;根据子树同构识别一元克隆类,然后通过克隆类的连接操作,逐步识别二元及任意元数的克隆类.实验分析了多个开源软件,识别出了其中的克隆序列以及克隆类,从中归纳出4种常见的代码克隆,其基本特征分别为:相同的程序点访问同类对象的不同属性、部分变量名不同、针对不同的数据类型实施相同的操作、修改克隆区域外定义的变量,并对这4种代码有效地实施了重构.  相似文献   

5.
为了辅助教师对学生实验代码抄袭检测。根据已有的检测算法,提出一种以多行为单位,对代码进行标准化、数字化、预处理,并使用基于指纹的方式进行比较的方案。该方案不仅能够检测代码的相似度,同时能够给出抄袭的行数。经过实验教学应用,该方法能够检测大部分学生抄袭的情况,能够实际应用。  相似文献   

6.
为了实现委托外部检测单位进行的化验任务中古生物代码的导入,设计了基于编辑距离算法的古生物代码匹配方法。该方法在匹配指定古生物代码时,首先计算该古生物代码与本地古生物代码库中各个代码的字符串相似度,然后按照相似度从高到低推荐给用户进行选择。为了提高匹配的效率,在匹配过程中,若找到编辑距离为0的本地代码后即为最佳匹配结果,结束整个匹配过程;此外,对实验人员手工选择的匹配结果进行缓存,以供下次快速匹配。实例分析结果表明,基于编辑距离算法的匹配方法能够精确得到古生物代码之间的相似度,达到了预期的效果。  相似文献   

7.
针对应用程序安全分析的实际需求,设计并实现了一个针对可执行代码的内存泄漏分析框架MLAB.MLAB首先从可执行代码中恢复控制流和数据流信息,依据恢复的控制流图建立程序的有限状态自动机,在此基础上运用模型检测算法分析程序可能存在的内存泄漏.利用几个典型的程序实例详细说明了MLAB方法的工作原理,并通过基于测试程序集MiBench的实验对方法进行了验证,结果说明了该方法的有效性.  相似文献   

8.
随着计算机软件技术的快速发展,由软件代码缺陷引起的安全问题也日趋严重。通过对静态分析技术以及静态检测工具的深入研究,针对当前静态检测工具误报率、漏报率较高的问题,提出一个多策略的软件代码缺陷检测方法。该方法平台一方面综合运用多种静态检测工具进行检测,对比单个检测工具降低误报率,扩大检测覆盖率;另一方面,对确定性不高的静态检测结果进一步进行动态检测,不但降低静态检测的误报率,而且还能发现静态检测技术检测不到的缺陷,降低漏报率。实验结果证明,多策略检测方法是一个有效的软件漏洞检测方法。  相似文献   

9.
程序中的无用代码意味着算法设计、代码实现中存在着问题。无用代码的存在增加了软件开发、测试、使用中的开销,对正确进行程序测试评估产生影响。在对无用代码的表现形式进行分析的基础上,对影响无用代码检测所要进行的数据流分析的各种因素进行了讨论。文中关于到达定值数据流分析过程中的常数传播、谓词表达式的变换、程序插装等的关于谓词表达式的求解方法为无效分支的检测提供了依据。  相似文献   

10.
基于Java的代码混淆算法研究   总被引:1,自引:0,他引:1  
首先介绍了混淆技术的现状、原理及分类,然后对标识符重命名的4种算法进行了深入研究,通过对算法的伪代码和性能分析,证明了4种混淆算法具有很好的混淆效果,能够很好地保护Java软件,为Java软件的反编译和逆向工程提高了程序复杂度、抗攻击能力,且不增加程序额外的执行开销.本文研究的算法对移动代码和软件知识产权的保护能起到积极作用.  相似文献   

11.
为了提高软件代码质量,笔者从开发与审核两个过程分析了可以改进代码质量的关键环节,并在此基础上利用AOP提供的连接点模型,提出了一个灵活的、面向扩展的代码质量框架AjCQFr(AspectJ-based Code Quality Framework)。按照此框架的要求,开发了若干个检测代码质量的工具。同时,在开发中引入面向方面的设计和实现,并使用上述工具对开发成果进行质量检测。实践证明,这些工具可以极大地提高软件的质量和开发效率,并缩短代码质量保证过程。  相似文献   

12.
针对从软件模型到程序代码自动生成的问题,研究了特定领域建模生成器,把深度优先算法和广度优先算法运用到系统生成中。提出了MetaEdit+环境下,基于广度优先算法和基于深度优先算法的代码生成器实现方法。实现了代码自动生成,同时提高了生成代码的可读性,最后结合电子万年历的实例进行验证。  相似文献   

13.
为了提高虚拟机软件保护方法的抗逆向效果,研究并实现了保护系统OB-VMP(obscure virtual machine protection)。在OB-VMP中,多套虚拟机环境被随机选择来执行构造的混淆基本块和关键代码,私有的虚拟环境使得混淆基本块难以去除;同时混淆基本块让攻击者难以定位关键代码和关键代码所基于的虚拟环境,提高了虚拟机的保护效果。另外,在被保护代码的不同执行阶段,字节码和不同的虚拟指令映射,攻击者不能基于累积的字节码知识进行后续分析,进一步增加了OBVMP的抗逆向效果。理论分析和实验结果显示:OB-VMP能够在较小时空消耗基础上,显著提高逆向分析的难度,提高软件的安全性。  相似文献   

14.
分析了Linux 2.4内核中采用的基于蒙特卡罗方法的代码热点检测算法和实现机制,指出了其中的不足,并在此基础上提出了改进措施。  相似文献   

15.
高敏芬  王志 《实验室科学》2011,14(6):121-123
为了培养学生的创新意识、提高其创新实践能力,南开大学信息安全面向本科生开展了"恶意代码及其防治技术"开放实验项目。"二进制代码分析"是该开放实验项目的重要内容之一。基于上述开放实验项目,该文探讨了"二进制代码分析"实验平台的设计问题,包括实验平台的设计思想与目标、实验平台的总体框架、实验平台的组成部分功能分析等。  相似文献   

16.
基于抽象语法树的代码静态自动测试方法研究   总被引:1,自引:0,他引:1  
软件测试是排除软件故障,提高软件质量和可靠性的重要手段。从是否需要执行被测程序角度考虑,软件测试分为静态测试和动态测试。动态测试通过输入测试数据,动态执行程序来发现软件中存在的错误。尽管动态测试能发现部分软件错误,但对于一些特殊类型错误的检测无效。鉴于此,本文采取了一种特殊的静态分析技术来实现对代码的测试。本文首先讨论了传统软件测试方法的缺点和局限性,给出了软件的故障模型,进而提出了基于抽象语法树的静态分析技术,并给出了故障自动检测算法。依据该算法开发了自动化测试工具,给出了实验结果和对比分析,并指出了下一步的研究方向。  相似文献   

17.
代码审查是一种高效的程序缺陷检测方法,因为它能够在软件开发的过程中找出程序的错误,这很大程度上降低了改正错误的成本.但是传统的代码审查是一种劳动力密集型的方法,为了提高代码审查的效率,一系列的自动化代码缺陷检测技术和工具已经被提出并得到了广泛的应用.本文介绍了支持代码审查的自动化代码缺陷检测技术的相关内容.结合Java语言的特点对自动代码缺陷检测体系结构和工作的原理做了论述,并引入了缺陷模式树来提高检测的速度;最后通过具体的实验来分析了自动化代码缺陷检测的有效性和高效性.  相似文献   

18.
针对模型驱动开发中功能代码自动生成方面存在的问题,提出了一种形式化建模方法,用以实现模型驱动架构中功能代码的自动生成。通过进程代数描述的原子操作及其组合逻辑,使得功能行为的设计可以参数化和实例化,从而完成从高层模型描述到功能代码的自动转换。实验表明,本方法提升了软件模型描述的层次和灵活性,能够对模型驱动的软件开发提供有力的支持。  相似文献   

19.
谷春英  张顺利 《科学技术与工程》2013,(10):2871-2874,2879
恶意程序代码的相似度估计是恶意程序代码分析和检测的重要研究内容。现有的方法主要是对恶意程序代码进行属性计算或结构度量,但由于恶意程序代码结构的灵活性和恶意程序代码的伪装、恶意程序代码的相似度较难度量。提出了改进指纹和LSC加权的恶意程序代码相似度估计算法。该算法首先对恶意程序代码进行函数作用域划分和标准化预处理,然后对其进行字串序列化,利用改进的指纹相似度来对恶意程序代码的相似度进行度量;同时结合最大公共字串匹配算法进行结构度量,并对其相似度计算结果进行加权,对恶意程序代码结构的相似度进行综合估计。实验以C语言结构的程序代码为例,利用折半查找算法生成恶意程序代码测试数据集进行算法有效性验证。仿真证明该算法具有较好的恶意程序代码相似度估算精度。  相似文献   

20.
程序中的无用代码意味着算法设计、代码实现中存在着问题。无用代码的存在增加了软件开发、测试、使用中的开销,对正确进行程序测试评估产生影响。在对无用代码的表现形式进行分析的基础上,对影响无用代码检测所要进行的数据流分析的各种因素进行了讨论。文中关于到达定值数据流分析过程中的常数传播、谓词表达式的变换、程序插装等的关于谓词表达式的求解方法为无效分支的检测提供了依据。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号