首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于对象传播图和指针分析的函数调用图构建方法_软安科技有限公司_202310185670.4 

申请/专利权人:软安科技有限公司

申请日:2023-03-01

公开(公告)日:2024-04-30

公开(公告)号:CN116340942B

主分类号:G06F21/56

分类号:G06F21/56

优先权:

专利状态码:有效-授权

法律状态:2024.04.30#授权;2023.07.14#实质审查的生效;2023.06.27#公开

摘要:本发明涉及一种基于对象传播图的指针分析的函数调用图构建方法,其一边建立值传播图一边在值传播图上传播对象的流动信息,循环地处理值的流动过程。最后通过每个函数调用指针的对象指向信息,就能建立相对准确的函数调用关系图。本发明基于待分析代码的特性,折中选择处理C++虚函数调用、堆使用malloc,new等系统调用、域对象较多使用的情况,减少传统指针分析的计算处理规模,提升分析效率。对重点分析的堆使用采用代码分配点方法建模,域对象采用域敏感的方法建模,提升关键部分的分析精度。此方法为精度和效率的折中,根据待分析代码的特性,部分采用指针分析方法和对关键分析内容进行建模产生较为精确的函数调用关系图。

主权项:1.一种基于对象传播图和指针分析的函数调用图构建方法,其特征在于:所述函数调用图构建方法包括:S1、分析程序的源代码,得到从主函数开始的输出为函数间的调用关系图,并对此函数进行分析;S2、获取此函数中的所有创建对象语句,记录为最初始创建的指向关系列表;S3、从上到下依次获取此函数中的赋值语句,描述指针对象的传播关系,构建对象传播图,为赋值的来源方和接收方建立一个有向边,且来源方指向接收方,取出来源方的指向关系表,把来源方的指向关系沿着对象传播图向后传播,直到传播到所有路径上;S4、从上到下依次处理此函数中的对象域为左值的赋值语句,以及对象域为右值的赋值语句,并构建对象传播图,并考虑对象域的指向关系;S5、从上到下依次获取此函数中所有函数调用语句,对于虚函数调用,根据得到调用函数的对象信息,以及面向对象特性取出对应函数,建立调用边,对于非虚函数调用,则直接建立调用边,并把被调函数加入待分析函数列表;S6、此函数分析完毕后,从待分析函数列表中取出第一个函数,并重复步骤S2-S5,直到待分析函数列表中所有函数都分析完毕。

全文数据:

权利要求:

百度查询: 软安科技有限公司 一种基于对象传播图和指针分析的函数调用图构建方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。