[发明专利]一种用于建立控制流图的方法、系统和介质有效
申请号: | 202110152894.6 | 申请日: | 2021-02-04 |
公开(公告)号: | CN112506564B | 公开(公告)日: | 2021-04-27 |
发明(设计)人: | 朱凯龙;陆余良;刘京菊;黄晖;王永杰;杨国正;于璐;赵军 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F8/75 | 分类号: | G06F8/75;G06F8/74;G06F11/36 |
代理公司: | 中国和平利用军工技术协会专利中心 11215 | 代理人: | 刘光德 |
地址: | 410073 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 建立 控制 方法 系统 介质 | ||
本公开提供一种用于建立控制流图的方法、系统和介质。所述方法包括:步骤S1、基于目标程序的函数调用图和所述函数内的控制流图,通过融合生成第一控制流图,所述第一控制流图为过程间控制流图,不包含间接跳转关系;步骤S2、提取所述目标程序中的间接跳转点,根据所述间接跳转点对所述目标程序执行基于距离的导向式灰盒模糊测试,以生成测试用例,所述测试用例为测试过程中执行不同路径的用例;步骤S3、利用所述测试用例确定所述目标程序中的所述间接跳转关系,以获取第二控制流图,所述第二控制流图包含所述间接跳转关系。
技术领域
本发明涉及控制流图领域,尤其是涉及一种用于建立控制流图的方法、系统和介质。
背景技术
控制流图由程序基本块及连接基本块之间的跳转边组成,表示了程序执行的流程,是程序分析的基础数据。很多程序分析技术需要基于程序的控制流图,如数据流分析、污点分析、符号执行等。这些分析技术影响当前程序分析应用的准确性,如程序安全漏洞分析、编译优化、程序相似性分析、恶意软件分析等。因此构建完备的控制流图在程序分析中具有重要的应用价值。
间接跳转又称作间接分支,是指在程序中存在一类控制流跳转,该类跳转的目标地址不是通过直接寻址获得的,而是通过间接寻址方式计算得到的。在C/C++中,使用函数指针和虚函数实现函数调用都会造成间接跳转。间接跳转是控制流图中的隐藏边,这类调用的目标函数是在运行时确定的,很难通过静态分析准确的获得,为构造完备的控制流图提出了挑战。图1为根据本发明比较例的间接跳转的示例程序;如图1所示,在函数func中,foo表示一个指向函数的指针,在不同输入条件下,foo分别可能取值为sub(第10行)和add(第13行),当通过函数指针foo进行函数调用时(第15行),跳转的目标地址由动态执行时决定。仅通过静态分析很难确定该间接跳转关系,不能构建完备的控制流图,可能导致基于该控制流图的分析存在误差。
目前,构建程序的控制流图的方法可以分为静态分析、动态分析和混合分析。静态分析方法不需要执行程序,通过对目标程序代码进行解析构建程序控制流图。静态分析的典型工具包括LLVM、IDA Pro,BINCOA等。该方法速度快、具有较高的代码覆盖率,应用最为广泛。但由于静态分析无法获得间接跳转地址,所以该方法构建的控制流图是不完备的。
动态分析方法利用测试用例引导目标程序具体执行,通过记录程序执行的控制流信息,构建程序控制流图。该方法精确度高,并且可以获得间接调用信息,但是路径覆盖率较低。
混合分析方法综合利用了静态和动态分析的结果构建控制流图。采用符号执行技术或基于覆盖的灰盒模糊测试(Coverage-based Graybox Fuzzing,CGF)技术生成测试用例引导程序执行,记录执行过程中发现的控制流信息,使用该信息补充静态分析构造的控制流图。其中采用符号执行的方法存在路径爆炸、约束求解难的问题;采用CGF技术生成测试用例存在盲目性,不能高效发现间接跳转。
目前,现有的实现方式提供了一种基于动静态混合分析构建程序控制流图的方案,该方案通过将CGF技术应用于构建程序控制流图中,提高了构建控制流图的完备性。图2为根据本发明比较例的基于动静态混合分析构建程序控制流图的示意图;如图2所示,首先,目标程序首先翻译成中间代码,然后经过静态分析构建静态控制流图;随后,采用CGF技术生成测试用例集,引导程序具体执行并插桩监控确定间接跳转地址。最后,将间接跳转关系融合到静态控制流图中,获得最终的控制流图。
使用CGF技术生成测试用例来发现程序中的间接跳转,虽然可以一定程序上提高构建控制流图的完备性,但是仍存严重不足。CGF的目的在于尽可能的覆盖整个程序中所有代码,其认为程序中所有的分支是同样重要的。然而在构建控制流图中,尽可能多的触发间接跳转才是生成测试用例的最终目的,因此采用CGF技术生成测试用例并不能高效地触发间接跳转,限制了构建控制流图的完备性。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110152894.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:区块生成及验证的方法、装置、电子设备和可读存储介质
- 下一篇:一种起重机