首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 625 毫秒
1.
静态分析是检测软件代码缺陷和提升软件代码质量的有效方式. 由于静态分析不实际运行代码,不能获取足够的运行时信息,因此分析结果的准确性有待提高. 相比而言,符号执行技术能够模拟执行程序并收集大量的数据流信息,提升数据流分析的准确程度,弥补静态分析的不足. 为了提高静态分析工具分析程序缺陷的准确性,本文设计并实现了一个代码缺陷检测工具ABAZER-SE,它基于GCC抽象语法树,综合采用符号执行与静态分析技术以检测源代码中的缺陷. 使用Toyota ITC静态分析基准对该工具进行了评估,实验结果表明,本文方法及工具可以提高静态分析结果的准确性.   相似文献   

2.
提出一种日志自动注入的方法,解决驱动程序中的内核扩展函数调用不规范的问题。首先静态扫描源程序,当发现程序中调用了内核扩展函数但没有检测返回值时,则在调用后自动插入对返回值的检测代码,并使得这些函数在执行发生错误时会被日志记录。一旦系统发生崩溃,这些日志信息将成为关键的调试依据。实验结果表明,该方法对系统性能影响很小,且可以帮助调试人员更高效地定位和调试内核模块错误。  相似文献   

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

4.
为规范代码设计模式,提高代码编写效率,减少编码错误,设计并实现了基于设计模式的可视化Verilog HDL代码生成与验证工具.对比现有代码生成方式,参考ZIPC表格设计思想,实现自定义模块模式、模板模式和在线编辑模式三种代码生成模式.最后,通过对代码生成工具的功能测试和性能测试分析,在2000个用户并行访问情况下,系统...  相似文献   

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

6.
内存安全问题已成为影响C/C++程序正确性和可靠性的主要因素。一些现有的静态代码检测工具无法识别全局变量+跨函数内存管理的内存泄露和未定义越界访问这两种缺陷,且其他动态代码检测工具,因需要在运行时进行插桩等操作,会增加额外的开销导致检测效率慢。为解决这些问题,采用LLVM 15提出一种基于中间语言数据依赖关系的内存安全性检测方法,该方法通过获取并分析LLVM中间语言中指令之间的数据依赖,从而进行判断得出结果。在软件保障参考数据集SARD上的相关测试用例集验证了该方法的有效性,相比现有方法,该方法可以检测这两种内存安全性缺陷。  相似文献   

7.
随着开源软件的广泛使用,代码溯源成为管理软件源代码、降低潜在风险的重要技术手段。基于代码克隆检测的大规模代码溯源分析,从其检测结果中鉴别代码克隆对之间的继承关系,对代码来源追踪、组件依赖关系分析、软件脆弱性分析以及代码缺陷修复等具有重要意义。目前,已有方法在原始代码片段存在微小修改的情况下,会产生许多误判,并且检测克隆对的效率也有待提高。针对上述问题,提出了代码溯源中克隆代码继承关系的判定方法CloneIRD,包括一个基于自研快速分布式克隆检测工具FastDCF的代码溯源分析框架,以及该框架的核心算法——基于代码演化信息的克隆代码继承关系判定算法EIHR。为验证框架和算法的有效性,首先设计并实现了CloneIRD方法,并在Linux内核V4.9和V4.12的开源代码上进行了实验。实验结果表明,CloneIRD方法能够有效判定代码溯源结果中克隆对的继承关系,且基于FastDCF的溯源分析框架能够胜任大规模代码的溯源分析任务。  相似文献   

8.
针对ARM多核处理器存储模型正确性的快速检测问题,提出了一种利用时间序和悬空窗口的有界特性的快速检测方法,并实现了检测工具.该方法给出了ARM存储模型基于barrier的弱一致性模型的公理语义,通过定期扫描处理器的性能计数器获得访存指令操作间的时间约束关系.检测工具由随机指令发生模块、多核处理器性能计数器记录模块和结果分析模块3部分组成,它的低算法时间复杂度特性使其能够有效处理上百万行ARM访存指令程序.检测工具使用C++语言实现,可以在运行时动态调整指令流的长度参数,具有很好的扩展性.利用支持ARMMPCore的模拟器进行了实验,并用手工的方法在指令流执行序列中注入了几个错误,以验证程序结果是否违反ARM存储模型.实验结果表明,检测工具能够正确发现上述注入错误,检测方法和检测工具可以有效检测ARM多核处理器存储模型的正确性.  相似文献   

9.
传统检测工具时效性差,难以应对多变的系统环境带来的漏洞威胁,本文在基于主机漏洞检测方法的基础上,提出了漏洞实时检测方法,将使用钩子技术实现的主机实时监控与漏洞检测技术相结合,改进了传统检测方法时效性差的缺点.本文讲述了漏洞监测系统的设计与实现,主要论述了两方面的内容,使用钩子技术进行系统监控和将开放漏洞评估语言进行检测流程改进,使之能够用于漏洞的实时检测.最后对系统进行了有效性测试,结果表明,本系统能够及时对系统环境变化做出反应,同时能够准确有效的检测到漏洞威胁,弥补了传统检测工具的不足  相似文献   

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

11.
Rust is a system-level programming language that provides thread and memory safety guarantee through a suite of static compiler checking rules and prevents segmentation errors. However, since compiler checking is too strict to confine Rust's programmability, the developers prefer to use the keyword "unsafe" to bypass compiler checking, through which the caller could interact with OS directly. Unfortunately, the code block with "unsafe" would easily lead to some serious bugs such as memory safety violation, race condition and so on. In this paper, to verify memory and concurrency safety of Rust programs, we present RSMC(Safety Model Checker for Rust), a tool based on Smack to detect concurrency bugs and memory safety errors in Rust programs, in which we combine concurrency primitives model checking and memory boundary model checking. RSMC, with an assertion generator, can automatically insert assertions and requires no programmer annotations to verify Rust programs. We evaluate RSMC on two categories of Rust programs, and the result shows that RSMC can effectively find concurrency bugs and memory safety errors in vulnerable Rust programs, which include unsafe code.  相似文献   

12.
This paper introduces strategies to detect software bugs in earlier life cycle stage in order to improve test efficiency. Static analysis tool is one of the effective methods to reveal software bugs during software development. Three popular static analysis tools are introduced, two of which, PolySpace and Splint, are compared with each other by analyzing a set of test cases generatedd by the authors. PolySpace can reveal 60% bugs with 100% R/W ratio (ratio of real bugs and total warnings), while Splint reveal 73.3% bugs with 44% R/W ratio. And they are good at finding different categories of bugs. Two strategies are concluded to improve test efficiency, under the guideline that static analysis tools should be used in finding different categories of bugs according to their features. The first one aims at finding bugs as many as possible, while the second concentrates to reduce the average time on bug revelation. Experimental data shows the first strategy can find 100% bugs with 60% R/W ratio, the second one find 80% bugs with 66.7% R/W ratio. Experiment results prove that these two strategies can improve the test efficiency in both fault coverage and testing time.  相似文献   

13.
fuzzing和混合执行是二进制代码分析和测试领域的两个重要技术.为了探索结合这两种技术的潜力,并找到代码中的深层缺陷,本文提出了一种新的路径记录方法,以推进混合执行来辅助fuzzing,并在工具Digger中实现了该方法,Digger能够分析测试接收文件输入或使用额外参数的目标程序.在实际应用程序(如coreutils,catdvi等)上评估了Digger,结果表明,通过使用新的路径记录方法,相比现有成熟工具Driller,Digger能够达到更高的代码覆盖率并找到更多的缺陷.   相似文献   

14.
Out-of-bounds array access(OOB) is one of the fault models commonly employed in the objectoriented programming language. At present, the technology of code insertion and optimization is widely used in the world to detect and fix this kind of fault. Although this method can examine some of the faults in OOB programs, it cannot test programs thoroughly, neither to find the faults correctly. The way of code insertion makes the test procedures so inefficient that the test becomes costly and time-consuming. This paper, uses a kind of special static test technology to realize the fault detection in OOB programs. We first establish the fault models in OOB program, and then develop an automatic test tool to detect the faults. Some experiments have exercised and the results show that the method proposed in the paper is efficient and feasible in practical applications.  相似文献   

15.
利用软件补丁信息,结合静态分析、符号执行和约束求解技术,提出了一种测试输入自动生成方法.该方法可以自动产生绕过补丁修补位置的测试输入,给出新的触发软件缺陷的有效可执行路径,从而找到新的软件缺陷.运用这种方法,在GNU Mailutils中,成功地发现了一个软件缺陷.该方法可以运用于实际的软件代码,保证了软件补丁修补的完备性.  相似文献   

16.
离心压气机实际气体三维粘性流场分析   总被引:8,自引:1,他引:8  
应用时间推进法求解连续性方程、时均N-S方程、能量方程、实际气体状态方程及Yang&Shih紊流模型,对压缩重介质实际气体(丙稀)的大流量离心压气机整级流场(闭式叶轮、扩压器、弯道及回流器)进行了数值分析,其中实际气体的热力学属性均表示成温度的函数.分析了压缩实际气体丙稀时模型级内部尤其是弯道及回流器内部的流动规律,将计算结果与丙稀作为理想气体时模拟的结果进行对比分析,并与实验值进行了比较.结果表明:采用实际气体模型进行模拟时压气机性能更接近于实际性能.压缩实际气体及理想气体时叶轮内部速度分布及模型级出口参数是不同的,叶轮出口流场参数分布差别主要集中在轮盘、轮盖两侧.沿弯道及回流器中央流线的压力系数差别显著,模型级出口理想气体的压力系数明显高于实际气体.为了加快收敛,计算时采用了隐式残差平均法及完全多重网格技术.  相似文献   

17.
Chi-square Distance在协议异常检测中的应用   总被引:1,自引:0,他引:1  
针对Juan M提出的一种基于马尔可夫链的随机协议异常检测模型和评估方法存在的不足进行改进.改进后的模型增加了一些必要的状态,初始概率和转换概率更加精确.实验表明,将Chi—Square Distance和马尔可夫链方法相结合来检测协议异常,可克服原方法的不足,能有效检测到SYN Flooding攻击.  相似文献   

18.
JavaScript是一种动态脚本语言,被用于提高网页的交互能力.然而攻击者利用它的动态性在网页中执行恶意代码,构成了巨大威胁.传统的基于静态特征的检测方式难以检测经过混淆后的恶意代码,而基于动态分析检测的方式存在效率低等问题.本文提出了一种基于语义分析的静态检测模型,通过提取抽象语法树的词法单元序列特征,使用word2vec训练词向量模型,将生成的序列向量特征输入到LSTM网络中检测恶意JavaScript脚本.实验结果表明,该模型能够高效检测混淆的恶意JavaScript代码,模型的精确率达99.94%,召回率为98.33%.  相似文献   

19.
静态分析方法可以自动地提取软件的行为信息,从而检测出软件中的安全漏洞。和其他程序分析方法相比,该方法具有自动化程度高和检测速度快的优点。本文介绍了Java语言的安全漏洞的故障模式,说明了类型推断、数据流分析和约束分析等主要静态分析方法及两种特别的分析方法,最后介绍了几种常用的静态代码安全检测工具。  相似文献   

20.
静态分析方法可以自动地提取软件的行为信息,从而检测出软件中的安全漏洞。和其他程序分析方法相比,该方法具有自动化程度高和检测速度快的优点。本文介绍了Java语言的安全漏洞的故障模式,说明了类型推断、数据流分析和约束分析等主要静态分析方法及两种特别的分析方法,最后介绍了几种常用的静态代码安全检测工具。  相似文献   

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

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