买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
摘要:本公开提供了一种用于SAST的函数调用图构建方法、装置及存储介质,能够利用目标程序的源代码,生成目标程序抽象语法树,并根据抽象语法树生成类继承图和目标程序中多个方法之间的方法调用信息,再根据类继承图以及方法调用信息生成目标程序的函数调用图,从而实现通过源代码直接生成函数调用图,不需要人工确定,也不需要将源代码编译成可执行文件以及运行目标程序,构建函数调用图的效率更高,且准确度更高。并且,由于构建函数调用图时使用了类继承图,能够更加全面的确定出潜在的方法调用关系,提高函数调用图的覆盖率。
主权项:1.一种用于SAST的函数调用图构建方法,其特征在于,包括:基于目标程序的源代码,生成所述目标程序的抽象语法树;基于所述抽象语法树,生成所述目标程序的类继承图;所述类继承图中包含多个表示第一对象的节点,以及表示第一对象之间继承关系的连接边;所述第一对象包括所述目标程序中的类或接口声明;基于所述抽象语法树,确定所述目标程序中多个第二对象对应的至少一个方法调用信息;所述第二对象包括所述目标程序中的方法;基于所述方法调用信息以及所述类继承图,生成所述目标程序的函数调用图;所述函数调用图包含多个表示第二对象的节点,以及表示第二对象之间调用关系的连接边;所述函数调用图用于进行针对所述目标程序的跨函数风险定位;所述基于所述方法调用信息以及所述类继承图,生成所述目标程序的函数调用图,包括:针对任一所述第二对象,对所述至少一个方法调用信息进行符号解析,得到所述方法调用信息对应的方法定义封装;基于所述方法定义封装中携带的方法定义签名,确定第一调用关系;基于所述第二对象的方法签名中指示的类标识信息,以及所述类继承图,确定第二调用关系;基于所述第一调用关系以及所述第二调用关系,生成所述目标程序的函数调用图;所述基于所述第二对象的方法签名中指示的类标识信息,以及所述类继承图,确定第二调用关系,包括:从所述类继承图中,确定与所述类标识信息对应的目标类之间具有继承关系的第三对象;所述第三对象包括目标类的子类和或实现类;确定所述第三对象对应的目标方法的方法签名;将所述目标方法的方法签名与所述第二对象对应的方法签名进行对比;在所述目标方法的方法签名与所述第二对象对应的方法签名一致的情况下,确定所述目标方法调用所述第二对象。
全文数据:
权利要求:
百度查询: 北京安普诺信息技术有限公司 用于SAST的函数调用图构建方法、装置及存储介质
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。