[发明专利]一种基于图计算的代码分析的方法和装置在审
申请号: | 202110145882.0 | 申请日: | 2021-02-03 |
公开(公告)号: | CN112800425A | 公开(公告)日: | 2021-05-14 |
发明(设计)人: | 左志强;张奕裕;王林章;李宣东 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F9/54 |
代理公司: | 江苏银创律师事务所 32242 | 代理人: | 孙计良 |
地址: | 210001 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 计算 代码 分析 方法 装置 | ||
本发明公开了一种基于图计算的代码分析的方法和装置。该方法首相将程序代码转换成无函数调用节点的全局流程控制图,每个节点的代码语句转换成数据流向信息;然后对全局流程控制图划分分区,每个分区为子控制流程图,分区后初始化每个分区的待分析节点集,然后以分区为单元采用整体同步并行计算的方式对分区进行分析,分区分析时对每个节点调用用户所实现分析的接口通过循环迭代直到用户所实现分析的接口输出稳定时,从待分析节点集中删除节点,直到所有的各个分区的待分析节点集中的节点被清空。分区同步并行计算时以分区为单位进行磁盘数据调度。本发明可在单机上实现大规模系统软件代码的数据流和上下文敏感分析。
技术领域
本发明涉及代码分析技术,尤其涉及数据流敏感和上下文敏感性分析。
背景技术
程序静态分析技术在广泛的应用程序中发挥着重要的作用,包括自动漏洞发现、编译器优化、安全漏洞检测等。现有的静态分析技术其算法的实现大都针对特定的使用场景并在分析精度和可扩展性上的权衡各不相同。通常来说,基于各种程序属性(如调用上下文或控制流图)区分结果的算法要比不区分结果算法更加有用。例如,可以使用这些精确的算法发现更多真实的漏洞并减少错误警告的报告。因而在程序分析领域出现了相关的上下文敏感的分析技术,字段敏感的分析技术,流敏感的分析技术和路径敏感的分析技术。尽管这些技术分析效果优于不敏感的对应技术,但是它们的计算代价却要昂贵得多,可能需要一台计算机无法提供的内存资源。
考虑到若将上述这些技术应用于有限的资源,它们很难扩展到对大规模系统代码进行分析应用。为了能够缓解这个问题,现有的工作采用了复杂的处理方法,例如可以调整上下文敏感的水平,探索不同形式的敏感度,或使用廉价的技术进行预处理,以此在可扩展性、通用性和实用性之间找到平衡点。然而上述改进的方法也只是针对其特定的应用程序有效而并非普遍适用,并且其方法的具体实现太过复杂以至于需要领域专家进行精心设计而对于行业中的常规开发人员几乎不可能使用这些技术。
发明内容
本发明所要解决的问题:成熟的静态分析技术实现起来通常非常复杂,因为其在基础的分析功能上实现了许多优化和扩展的逻辑。基础的分析功能与可伸缩性的特殊处理紧耦合使得静态分析实现起来具有难以保证分析正确性、难以理解代码和使用以及难以被其他客户端重用等缺点。
为解决上述问题,本发明采用的方案如下:
进一步,根据本发明的一种基于图计算的代码分析的方法,该方法包括如下步骤:
S1:获取待分析的程序代码;
S2:将待分析的程序代码转换成全局控制流图;转换成全局控制流图时,将其中的函数调用节点以其被调用函数的控制流图自上而下地展开,使得全局控制流图中不包含函数调用的节点;同时提取全局控制流图每个节点所对应的代码语句所包含的数据流向信息,使得全局控制流图的每个节点包含其对应的数据流向信息;
S3:将全局控制流图划分成若干个子控制流图作为分区,并初始化分区的待分析节点集;
S4:以分区作为同步单元的整体同步并行计算的方式和迭代的方式,基于用户所实现分析的接口,对各个分区进行分析,直到各个分区的待分析节点集均被清空;
对分区进行分析包括如下步骤:
S421:基于用户所实现分析的接口,对目标分区的待分析节点集中的节点和节点所对应的数据流向信息进行迭代分析直到节点所对应的输出数据流信息不再变化时从目标分区中删除相应的节点直到待分析节点集无节点,从而得到目标分区中各个节点所对应的输出数据流信息;输出数据流信息是数据流向信息,通过以节点和节点的数据流向信息作为参数调用用户所实现的分析接口所得到;目标分区是对分区进行分析中的分区;
S422:根据全局控制流图的节点之间的边关系,将该目标分区输出节点以及该输出节点的输出数据流信息并入至该输出节点所对应的后续分区的消息队列中;输出节点是目标分区中后续节点为其他分区节点的节点;
S423:对目标分区各节点所对应的数据流向信息进行去重处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110145882.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多功能车载组合天线及车辆
- 下一篇:电机控制器及其制备方法