首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到16条相似文献,搜索用时 515 毫秒
1.
函数调用关系能够反映软件系统中函数间的依赖关系,完整的函数调用关系可以更好地辅助程序验证和死锁分析,提升验证和分析的完备性.现有静态分析函数调用关系的方法不能准确分析函数指针和虚函数的调用,影响了其分析结果的准确性.针对这一问题本文提出了一种基于控制流图(Control Flow Graph, CFG)的函数调用关系静态分析方法,该方法首先使用GCC插件静态获取源代码中的类型和函数CFG等信息并构建分析路径,然后采用本文提出的模拟仿真算法分析程序中的语句,并解析函数指针和虚函数的调用,最后基于分析结果生成完整的函数调用关系.实验结果表明,该方法能够很好地支持对函数指针和虚函数的处理,提升了分析结果的准确性.  相似文献   

2.
针对目前大多数的函数调用关系分析工具无法分析函数指针、系统启动过程以及可加载模块的函数调用关系的现象,在CG-RTL的基础上提出了基于内核跟踪的动态函数调用图生成方法,并开发了动态函数调用图生成工具DCG-RTL(dynamic call graph based on RTL).DCG-RTL在S2E模拟器中运行待跟踪内核,通过指令捕获插件和函数解析插件记录运行时的函数调用和返回信息,分析跟踪信息得到动态和静态函数调用关系,利用CG-RTL工具在浏览器中展示.实验结果表明,DCG-RTL能全面和准确地跟踪包括函数指针引用和可加载内核模块在内的函数调用关系.  相似文献   

3.
软件安全逆向分析中程序结构解析模型设计   总被引:2,自引:0,他引:2  
提出了一种基于二进制文件的程序结构解析模型。该模型通过对二进制文件反汇编,去除汇编文件中的冗余信息,对汇编文件进行静态分析,构建带有索引依赖信息的基本块,并以该基本块为基础提取二进制程序的内部控制流与函数调用关系信息,最后给出程序内部控制流图以及函数调用关系图。该模型不依赖程序的源文件,以二进制文件为分析对象,实用性和通用性比较好;实验结果表明模型对二进制程序内部结构解析具有较高的准确性。  相似文献   

4.
函数参数个数的识别有助于函数原型的恢复,是进行数据流分析以及其他安全分析的基础。为了提高对函数参数个数识别的准确率,提出一种依据函数调用关系的投票机制来确定函数参数个数的算法——Findargs。Findargs从PPC和MIPS指令集的函数调用特点出发,利用函数调用关系和参数传递分析,识别函数参数的个数,为函数原型的恢复提供帮助。为了评估Findargs的识别效果,选取大型的二进制文件进行了测试,并与radare2进行了对比。实验结果表明,Findargs具有更高的准确率。对于PPC指令集,其准确率达到90.3%;对于MIPS指令集,其准确率为86%。  相似文献   

5.
带控制流的静态函数调用分析方法   总被引:2,自引:0,他引:2       下载免费PDF全文
提出一种带有控制流的静态函数调用分析的方法,通过建立模型,对源程序进行静态分析,得到程序中的控制流信息和函数调用信息。和已有的静态函数调用关系图分析工具calltree和Source Insight相比,该方法生成的函数调用流图不仅能展现函数间的调用次序,还可以了解程序设计的逻辑复杂度,有助于代码阅读和分析人员更快更好地理解程序结构以及设计流程,并为分析程序控制条件、设计路径覆盖测试用例和进行程序优化奠定基础。  相似文献   

6.
过程间指针分析算法的改进   总被引:1,自引:0,他引:1       下载免费PDF全文
指针分析对于使用C语言编制程序的数据流分析有着重要的意义。该文介绍指针问题的复杂度、指针分析算法的分类以及指针分析算法的现状,并采用Atkinson提出的基于函数类型过滤得到较为精确的函数调用图的思想,改进刘强提出的上下文敏感的过程间指针分析算法,在对使用函数指针进行函数调用时,使用函数原型过滤限制在函数调用处的函数指针的指向集,提高指针分析的精确度。  相似文献   

7.
陈永艳  束洪春  戴伟 《计算机科学》2013,40(8):119-123,135
大多数行业定制软件的漏洞检测较困难,而传统的静态漏洞检测方法会产生很多错误的和虚假的信息。针对函数调用前后存在的漏洞问题,提出了基于上下文无关的自顶向下与自底向上相结合的语法解析树的方法,它能够在对函数内部定义不了解或者部分了解的情况下,解析函数调用前后安全契约规则:前置规则和后置规则。同时通过扩展规则表示的XML文法来表示面向对象下,规则中的属性存在继承关系下的契约规则。实验表明,与同类型安全分析工具比较,该方法具有避免函数重复分析、规则可扩展性良好、尤其在自定义对象类和特定环境下自定义参数准确率高等优点。  相似文献   

8.
函数调用关系反映了软件系统中函数之间的依赖关系,在软件分析、软件测试与软件维护等众多软件工程领域都有着广泛的应用。但在大型复杂软件中搜索两个函数之间的调用关系时,由于函数数量众多、函数之间调用关系复杂,使得搜索所需时间较长。为了获得任意两个函数之间的调用路径,提出使用K-最短路径算法,并对K-最短路径算法进行并行化优化,减少搜索时间,为用户分析函数调用关系提供方便。通过对Linux内核3.19(包含40多万个函数结点和110多万调用关系)进行分析,实验结果表明通过并行化优化,并行加速比一般可达5~6倍。  相似文献   

9.
针对软件开发过程中,变量变更造成的缓冲区溢出检测成本高、效率低等问题,提出了一种基于数据拓扑的危险函数调用影响分析方法,从变量粒度和路径粒度分析变量变更对危险函数调用的影响。通过静态分析源代码,提取变量定义、引用及依赖关系信息、危险函数调用信息和函数调用关系等内容;构建变量依赖关系集合,对变更变量进行数据拓扑分析,结合变量在栈内的分布规律,获取变量影响域;结合函数调用关系信息建立变量影响分析模型,获取路径影响域;根据变量影响域和路径影响域获取变更变量对危险函数调用的影响。实验结果表明,此方法界定变量变更对危险函数调用的影响更加精准。该方法可理解性和可用性较高,能够有效提高软件回归测试的精度和效率。  相似文献   

10.
在程序理解中,函数之间的调用关系是程序理解研究的重要内容。一个函数往往代表了一种具体功能或问题求解的实现,构建出函数调用图有助于对程序的理解。以JAVA语言为研究对象,介绍了几种函数调用图的构建方法,并比较了它们的优劣性,并在此基础上提出了一种函数调用图的构建方法  相似文献   

11.
call图用来反映程序中过程之间的调用关系,在程序分析和程序转换中起着重要的作用。本文首先讨论了简单情形下call图的构造算法,然后提出了过程向量及其映射函数的概念,从而设计出一种针对允许过程作为参数时call图的构造算法,并对该算法进行了详细的分析,其时间复杂度为O。本文最后讨论并分析了基于call图的程序相关分析方法。  相似文献   

12.
Android移动设备中存储了大量的敏感信息,如通话记录、联系人等,容易成为恶意攻击者的目标。基于静态污点分析技术,提出了一种面向Android平台的隐私泄露检测方法。通过提取Android敏感权限与API,创建两者之间的映射关系,生成Android应用程序的函数调用图,实现了对于大规模应用程序中潜在隐私数据泄露行为的检测。实验结果表明,本文所提出方法的准确率较高,且运行耗时较短,适合于大规模应用程序的检测。  相似文献   

13.
张家奇  牟永敏  张志华 《计算机应用》2005,40(10):3025-3033
针对目前软件设计与实现一致性检测方法需要大量模板集,难以一般化的问题,提出一种基于控制流的软件设计与实现一致性分析方法。首先,将设计文档伪代码和程序源代码转换为具有相同特征的中间表示,从中间表示中分别提取设计特征和实现特征,特征包括能反映系统结构的函数调用关系和能反映函数内部结构的控制流信息;然后,根据设计特征和实现特征分别建立设计特征模型和实现特征模型;最后,通过计算特征相似度来度量特征模型的相似度,进而获取一致性检测结果。实验结果表明,所提方法在软件实现的函数调用关系与设计不一致时,能够正确检测不一致函数调用关系;而在软件实现的函数调用关系与设计一致时,能够正确检测函数内部结构的不一致情况,准确度达到了92.85%。该方法可以有效获取一致性检测结果,不需要模板集,具有更优越的一般性。  相似文献   

14.
张家奇  牟永敏  张志华 《计算机应用》2020,40(10):3025-3033
针对目前软件设计与实现一致性检测方法需要大量模板集,难以一般化的问题,提出一种基于控制流的软件设计与实现一致性分析方法。首先,将设计文档伪代码和程序源代码转换为具有相同特征的中间表示,从中间表示中分别提取设计特征和实现特征,特征包括能反映系统结构的函数调用关系和能反映函数内部结构的控制流信息;然后,根据设计特征和实现特征分别建立设计特征模型和实现特征模型;最后,通过计算特征相似度来度量特征模型的相似度,进而获取一致性检测结果。实验结果表明,所提方法在软件实现的函数调用关系与设计不一致时,能够正确检测不一致函数调用关系;而在软件实现的函数调用关系与设计一致时,能够正确检测函数内部结构的不一致情况,准确度达到了92.85%。该方法可以有效获取一致性检测结果,不需要模板集,具有更优越的一般性。  相似文献   

15.
付文  赵荣彩  庞建民  王成 《计算机工程》2010,36(14):108-110
为有效提取恶意程序及其变种中的隐式API调用行为,提出一种基于静态分析的隐式API调用行为检测方法。采用指令模板匹配的方法识别具体调用形式,通过分析调用目标地址与函数名之间的关系来识别被调用API函数。实验结果表明,该方法能提高静态分析工具对恶意代码及其变体的检测能力。  相似文献   

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

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

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