[发明专利]程序数据流的分析方法、装置、电子设备及可读存储介质在审
申请号: | 202110694741.4 | 申请日: | 2021-06-22 |
公开(公告)号: | CN113419740A | 公开(公告)日: | 2021-09-21 |
发明(设计)人: | 何子南;王凯;邢培康;李炯 | 申请(专利权)人: | 中国工商银行股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 李春伟 |
地址: | 100140 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 数据流 分析 方法 装置 电子设备 可读 存储 介质 | ||
1.一种程序数据流的分析方法,包括:
构建解析模块,所述解析模块用于对所述程序数据流的源代码进行解析;
调用所述解析模块对目标程序数据流的源代码进行处理,生成第一信息;
序列化所述第一信息以生成序列化对象,将所述序列化对象持久化;
识别所述序列化对象的语法信息,并根据所述语法信息确定所述序列化对象涉及的变量和/或关联变量信息;
根据所述变量和/或关联变量信息生成程序数据流分析链表,所述程序数据流分析链表用于表示目标程序数据流在程序中的使用和存储关系。
2.根据权利要求1所述的分析方法,其中,所述解析模块包括策略链和多个解析器,所述多个解析器设置在所述策略链上;
所述解析器用于对所述程序数据流的源代码的语法进行解析。
3.根据权利要求2所述的分析方法,其中,所述第一信息包括第一子信息和第二子信息;
所述调用所述解析模块对目标程序数据流的源代码进行处理,生成第一信息包括:
依次调用所述策略链上的解析器对所述目标程序数据流的源代码的语法进行逐句的语法解析;
若所述解析器能够识别所述语法,则生成所述第一子信息;
若所述解析器无法识别所述语法,则生成所述第二子信息,所述第二子信息包括所述目标程序数据流的源代码。
4.根据权利要求3所述的分析方法,其中,所述序列化所述第一信息以生成序列化对象,将所述序列化对象持久化包括:
序列化所述第一子信息生成第一序列化对象,将所述第一序列化对象使用一般类存储持久化;
其中,所述第一序列化对象包括项目对象、记录对象、函数对象以及结构化查询语言对象中的一种或多种。
5.根据权利要求4所述的分析方法,其中,所述识别所述序列化对象的语法信息,并根据所述语法信息确定所述序列化对象涉及的变量和/或关联变量信息包括:
识别所述第一序列化对象的语法类型,获取与所述语法类型相对应的变量,若获取的所述变量中包括需要跟踪的跟踪变量,则获取所述跟踪变量的关联变量信息。
6.根据权利要求5所述的分析方法,其中,所述第一序列化对象包括函数对象,所述语法类型包括赋值语法和调用语法;
所述识别所述第一序列化对象的语法类型,获取与所述语法类型相对应的变量,若获取的所述变量中包括需要跟踪的跟踪变量,则获取所述跟踪变量的关联变量信息包括:
识别所述函数对象的赋值语法,获取所述赋值语法的变量和操作符,若所述变量中包括需要跟踪的跟踪变量,则获取所述跟踪变量的变量数值和传递关系;
识别所述函数对象的调用语法,获取所述调用语法的调用程序信息,若所述调用程序信息中包括需要跟踪的跟踪变量,则获取跟踪变量的变量数值和传递关系。
7.根据权利要求5所述的分析方法,其中,所述第一序列化对象包括结构化查询语言对象;
所述识别所述第一序列化对象的语法类型,获取与所述语法类型相对应的变量,若获取的所述变量中包括需要跟踪的跟踪变量,则获取所述跟踪变量的关联变量信息包括:
识别所述结构化查询语言对象的赋值语句,获取所述结构化查询语言对象的赋值语句中的变量,若所述变量包括需要跟踪的跟踪变量,则获取所述跟踪变量实际操作的数据库信息。
8.根据权利要求3所述的分析方法,其中,所述序列化所述第一信息以生成序列化对象,将所述序列化对象持久化还包括:
序列化所述第二子信息,生成第二序列化对象,将所述第二序列化对象使用特定类存储持久化。
9.根据权利要求3所述的分析方法,其中,所述分析方法还包括:构建新解析器以对所述第二子信息进行解析,将所述新解析器添加至所述策略链上,以更新所述解析模块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国工商银行股份有限公司,未经中国工商银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110694741.4/1.html,转载请声明来源钻瓜专利网。