首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到18条相似文献,搜索用时 46 毫秒
1.
基于程序插装的动态测试技术实现   总被引:21,自引:0,他引:21  
动态测试是检测程序的动态行为的一种有效手段,本文介绍了Safepro白盒软件测试工具系列中基于程序插装的动脉测试技术实现,具体讨论了动态测试的模型、数据流模型和动态跟踪数据的编码和解码技术,插装库设计与插装策略等内容。  相似文献   

2.
路径测试法是软件测试的一种基本方法。将C程序按照控制结构进行分类,结合路径测试特点进行插装,在设置探针的同时提取函数静态信息,算法采用先获取局部路径,再进一步获取全局路径的方法。实验结果表明,基于插装的路径获取技术,具有较高的准确率和效率,尤其适用于基于函数的路径提取。  相似文献   

3.
执行路径追踪是一种重要的动态二进制分析技术,可用于程序优化、失效诊断、软件度量和动态测试生成等诸多方面。执行路径追踪的性能开销巨大,收集到的踪迹信息数量庞大,给该技术的应用带来了困难。一般情况下,只追踪程序中的控制流转移指令可以降低开销,同时保留执行路径上的关键信息。本文以TEMU动态二进制分析平台为基础,重点研究在该平台上追踪程序控制流转移指令的方法。根据TEMU平台的特征,本文给出了一种通过解码指令进行追踪的直观方法和一种利用TEMU的"基本块起始"回调函数进行追踪的启发式方法。通过对这两种方法进行对比实验和分析得出:启发式方法具有明显的速度优势,而直观方法具有精确性和可扩展性。  相似文献   

4.
软件插桩是程序优化、软件调试、软件测试、故障定位等软件动态分析的基础技术.而其中,动态二进制插桩技术,因其无侵入性,即既不需要对源代码进行修改编译,又不需要重新组装二进制程序,不会引起目标码膨胀,而广泛应用于软件动态分析,特别是在资源受限、功耗低、实时性高的嵌入式软件领域,动态二进制插桩技术十分关键.然而,现有的二进制插桩工具仅能应用于用户态软件分析,在嵌入式全系统软件领域,还没有相应的二进制插桩工具.针对上述问题,在基于动态二进制翻译的开源指令集仿真器QEMU(quick emulator)基础上,研究突破基本块运行时间统计收集,并消除中断对嵌入式系统软件控制流分析的不良影响,实现了在中间码上对嵌入式全系统软件的动态二进制插桩,完成嵌入式全系统软件运行控制流跟踪,并开发日志处理工具.实验表明,该方法能完成目标码的调用图、函数剖面、覆盖率、控制流等分析,可以解决了嵌入式全系统软件动态二进制分析问题.  相似文献   

5.
软件测试是保证软件质量的重要手段,软件测试工具可以使测试过程变得自动化,覆盖分析为测试提供了可信度测量。该文研究了Java多线程动态测试中的覆盖率分析和线程分析一些度量标准,实现覆盖分析自动化和线程分析自动化的关键技术是程序插装。文章给出了实现此测试所需要的插装。  相似文献   

6.
7.
分析和比较了当前主流的性能分析工具,针对这些工具在嵌入式环境中进行性能分析的不足,提出并设计出一种无陷入插装方式性能分析模型。通过替换函数入口处的第一条指令并在转入模块内执行函数第一条指令实现快速无陷入统计方式,对函数执行时信息进行统计。实验表明,在存在大量递归调用和函数调用非常频繁的情况下,使用无陷入方式使性能分析的效率和准确性得到很大提升。  相似文献   

8.
针对加密软件中的密钥安全性问题,提出一种基于动态二进制插桩的密钥安全性检测方法。该方法面向CryptoAPI加密应用程序,首先通过对CryptoAPI密钥应用模式的分析,指出潜在的密钥安全性漏洞;然后以动态二进制分析平台Pin为支撑,动态记录程序运行期间的加解密过程信息;在此基础上设计关联性漏洞检测算法,实现对密钥安全性的检测。测试结果表明,该方法能够有效检测出两大类密钥安全性漏洞。  相似文献   

9.
许蕾  刘蕊成  陈贵美  赵晨  张卫丰 《软件学报》2019,30(7):2124-2138
随着互联网的迅猛发展,网络广告成为互联网最重要的商业模式之一.网络广告在促进互联网发展的同时,也带来了用户信息泄露、影响用户网页浏览体验等负面问题.为了对网络广告进行系统的研究,需要获取广告生成过程中完整的调用路径.由于加载到页面中的JavaScript文件量大、函数调用路径链路长、路径中的JavaScript代码经过了一定的压缩和混淆,因此很难通过静态方法获取网络广告调用路径.分析了动态广告生成的过程,对相关代码进行动态插桩,利用函数参数实现广告调用信息的传递,并记录下每个iframe内部的调用信息,通过匹配与合并多个iframe的信息,生成了完整的广告调用路径并确定了广告插入的操作方式.针对21个真实网站进行了实验,结果表明:该方法能够在不太影响性能的前提下,获取到静态方法无法获取到的广告动态加载过程信息并生成广告代码调用路径.  相似文献   

10.
李志伟 《测控技术》2011,30(10):88-91
程序插装是软件测试中一种重要的白盒测试技术.介绍了程序插装的基本原理,分析了程序插装的关键要素,研究了插装测试设计的主要内容.针对常用的程序结构,如线性程序、结构化程序、面向对象程序的不同特点,提出了相应的程序插装策略和测试实现方法.在插装测试实践中,根据程序测试的规模、要求等,需要综合考虑程序插装对被测程序性能、执行...  相似文献   

11.
软件二进制插桩是软件性能分析、漏洞挖掘、质量评价领域的关键技术.在嵌入式环境下,传统动态插桩算法受到无操作系统、CPU架构复杂、内存资源紧张等局限,难以展开工作.文章以软件动态二进制插桩算法为研究目的,通过静态特征分析和动态跟踪算法,引入图论算法对固件中的二进制进行分析,提出了嵌入式设备远程调试协议,实现了对软件运行时...  相似文献   

12.
基于反射植入的面向对象程序动态分析机制   总被引:2,自引:0,他引:2  
柴晓前  陈平 《微机发展》2005,15(5):11-13,17
随着软件系统的日益复杂,软件开发、维护以及进化的大部分工作和主要成本集中在对现有系统的理解上。逆向工程以支持程序理解为目标,通过分析目标系统,产生系统不同形式和不同层次的抽象表示,帮助用户从多个层面和角度理解目标系统。为了开发一种实用的逆向工程工具,文中在深入分析了反射、开放编译、植入等技术的基础上,提出了一种基于反射植入的面向对象程序动态分析机制,其主要思想是通过反射植入软件触发器获取目标系统的动态信息,这些信息由信息收集机制收集整理并保存到Cau-Graph,最后从Cau-Graph抽象出符合UML标准的动态模型图。通过项目实践发现,这种机制是可行的。  相似文献   

13.
动态函数调用跟踪技术是调试Linux内核的重要手段.针对现有动态跟踪工具存在支持平台有限、运行效率低的问题,基于二进制翻译,设计并实现支持多种指令集的动态函数调用跟踪工具.首先,使用二进制翻译进行系统加载、分析内核镜像,识别基本块的分支指令类型.然后,根据不同平台指令集,设计桩代码并在函数调用与返回指令翻译时插入桩指令,进而在程序执行和内核启动时实时获取时间戳、进程标识、线程标识、函数地址等信息.最后,内核加载完毕后,处理获取的信息,生成过程函数调用图.只需要根据平台指令集特点设计对应的信息获取桩代码并插入到函数调用指令翻译代码中,实现简单,易于移植支持多种平台.该方法基于二进制翻译,直接对程序或内核镜像中的指令段、代码段、符号表进行分析,不依赖源码.拓展的中间代码和额外的目标码,不影响基本块连接、冗余代码消除、热路径分析等二进制翻译的优化方法,降低了开销.基于QEMU的实验结果表明:跟踪分析结果与源代码行为一致,桩代码执行信息记录产生了15.24%的时间开销,而信息处理并输出到磁盘文件产生了165.59%的时间开销,与现有工具相比,性能有较大提升.  相似文献   

14.
针对激光追踪测量系统提出了激光追踪测量系统机械结构的动力学建模方法,综合考虑了机械结构的结构参数和动态耦合力,实现了对激光追踪测量系统机械结构强度设计、结构改进和电机选型的精确参考.给出了激光追踪测量系统机械结构的理想情况和非理想情况的动力学模型,通过虚拟样机技术对机械模型进行了分析,结果表明激光追踪测量系统中机械结构的动态耦合项可以忽略,激光追踪测量系统的运动轴系可单独建立动力学模型,依据建立的模型选择用于激光跟踪控制的电机,并验证了建立的动力学模型的正确性.  相似文献   

15.
Dynamic binary instrumentation for performance analysis on large scale architectures such as the IBM Blue Gene/L system (BG/L) poses unique challenges. Their unprecedented scale and often limited OS support require new mechanisms to organize binary instrumentation, to interact with the target application, and to collect the resulting data. We describe the design and current status of a new implementation of the Dynamic Probe Class Library (DPCL) API for large scale systems. DPCL provides an easy to use layer for dynamic instrumentation on parallel MPI applications based on the DynInst dynamic instrumentation library for sequential platforms. Our work includes modifying DynInst to control instrumentation from remote I/O nodes and porting DPCL’s communication for performance data collection to use MRNet, a tree-based overlay network that (TBON) supports scalable multicast and data reduction. We describe extensions to the DPCL API that support instrumentation of task subsets and aggregation of collected performance data.  相似文献   

16.
随着软件系统功能的日益强大,软件编写的代码量呈指数趋势增长,程序错误控制和程序性能优化变得越来越困难。为了在代码量增加的情况下,有效控制程序质量,改进程序性能,程序员大多采用动态二进制分析工具进行程序分析。动态二进制代码插入框架有效地简化了动态二进制工具的构建,因此准确掌握每种动态二进制代码插入框架的特征,成为准确构建不同工具的前提。本文通过对常用的五种二进制代码插入框架进行深入研究分析,总结归纳了每种框架的特点和特定情况下的适用性,为在工具构建过程中进行框架的准确有效选择提供了参考。  相似文献   

17.
基于路径覆盖插桩的可执行代码测试工具实现   总被引:1,自引:0,他引:1       下载免费PDF全文
王轶  蒋同海  董军  周喜 《计算机工程》2012,38(5):35-37,40
为解决传统程序插桩技术存在代码膨胀和运行时间较长的问题,提出对可执行代码进行控制流路径覆盖消除冗余的插桩策略。依据该策略设计一种针对Java可执行代码的单元测试工具,完成程序执行路径跟踪和覆盖率分析。对测试工具进行功能验证和性能分析,结果表明,该策略能够有效减少插桩点数量,降低插桩对被测程序时间特性的影响。  相似文献   

18.
基于延后策略的动态多路径分析方法   总被引:2,自引:1,他引:1  
多路径分析是弥补传统动态分析方法的不足、对可执行程序全面分析的重要方法之一.现有多路径方法主要采用随机构造或者根据路径条件构造输入进行路径触发,这两者均存在路径分析不全面和缺乏针对性的问题.文中通过对路径条件分析,确定了检测条件的基本组成元素,提出了弱控制依赖和路径引用集的概念和计算规则,并以此为基础提出一种延后策略的多路径分析方法.在程序分析过程中,对特定的程序检测点和检测点条件,有针对性地进行路径筛选,从语义上进行路径表达式简化,在保证检测点可达和检测表达式具有相同构造形式的前提下,简化检测表达式,减少分析路径的数量.对7款恶意软件的分析实验结果表明,该方法提高了分析效率和准确性.  相似文献   

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

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