[发明专利]一种代码识别方法、装置、设备及存储介质有效
申请号: | 202110529497.6 | 申请日: | 2021-05-14 |
公开(公告)号: | CN113282293B | 公开(公告)日: | 2023-09-05 |
发明(设计)人: | 周佺 | 申请(专利权)人: | 北京京东振世信息技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 100086 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 识别 方法 装置 设备 存储 介质 | ||
1.一种代码识别方法,其特征在于,包括:
获取待分析代码对应的代码类型,并基于所述代码类型,确定与所述待分析代码对应的抽象语法树;
基于所述抽象语法树,确定与所述待分析代码对应的代码识别数据;其中,所述代码识别数据包括函数调用数据;
基于所述代码识别数据,确定与所述待分析代码对应的函数调用图;
所述基于所述代码识别数据,确定与所述待分析代码对应的函数调用图,包括:
基于所述函数调用数据,生成与所述待分析代码对应的目标缓存代码数据;
通过调用绘制函数,基于所述目标缓存代码数据,生成与所述待分析代码对应的函数调用图;
所述函数调用数据包括调用函数的函数标识信息、调用所述调用函数的上一级调用函数的函数标识信息和所述调用函数调用的下一级调用函数的函数标识信息,相应的,所述基于所述函数调用数据,生成与所述待分析代码对应的目标缓存代码数据,包括:
针对所述函数调用数据中的每个调用函数,将所述函数调用数据中与所述调用函数对应的函数标识信息作为目标缓存代码数据中的键值数据;
将所述函数调用数据中调用所述调用函数的上一级调用函数的函数标识信息添加到目标缓存代码数据中与所述键值数据对应的被调用列表中,以及将所述函数调用数据中所述调用函数调用的下一级调用函数的函数标识信息添加到目标缓存代码数据中与所述键值数据对应的调用列表中。
2.根据权利要求1所述的方法,其特征在于,所述基于所述代码类型,确定与所述待分析代码对应的抽象语法树,包括:
通过调用与所述代码类型对应的词法分析器,生成与所述待分析代码对应的抽象语法树;其中,所述词法分析器用于将所述待分析代码的代码内容转换为抽象语法树。
3.根据权利要求1所述的方法,其特征在于,所述代码识别数据还包括文件引用数据,相应的,所述基于所述函数调用数据,生成与所述待分析代码对应的目标缓存代码数据,包括:
基于所述函数调用数据和所述文件引用数据中的引用文件标识信息,生成与所述待分析代码对应的目标缓存代码数据;其中,所述目标缓存代码数据中的键值数据包括所述函数标识信息以及所述文件引用数据中与所述调用函数对应的引用文件标识信息,所述被调用列表包括调用所述调用函数的上一级调用函数的函数标识信息以及所述文件引用数据中与所述上一级调用函数对应的引用文件标识信息,所述调用列表包括所述调用函数调用的下一级调用函数的函数标识信息以及所述文件引用数据中与所述下一级调用函数对应的引用文件标识信息。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
将所述文件引用数据中的至少一个引用文件标识信息添加到引用分析队列中;
针对所述引用分析队列中的每个引用文件标识信息,基于所述文件引用数据中与所述引用文件标识信息对应的引用路径,获取与所述引用文件标识信息对应的引用代码;
执行获取引用代码对应的代码类型的操作;
相应的,所述基于所述函数调用数据和所述文件引用数据中的引用文件标识信息,生成与所述待分析代码对应的目标缓存代码数据,包括:
基于所述待分析代码对应的函数调用数据和文件引用数据中的引用文件标识信息,确定初始缓存代码数据;
基于所述初始缓存代码数据、至少一个引用代码分别对应的函数调用数据和文件引用数据,生成与所述待分析代码对应的目标缓存代码数据。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述获取待分析代码对应的代码类型,包括:
获取用户基于交互界面输入的待分析代码对应的文件路径,并对与所述文件路径对应的待分析代码进行读取,得到所述待分析代码对应的代码类型;
相应的,所述方法还包括:将所述函数调用图和目标缓存代码数据在所述交互界面上进行输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东振世信息技术有限公司,未经北京京东振世信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110529497.6/1.html,转载请声明来源钻瓜专利网。