[发明专利]代码检测方法及装置有效
| 申请号: | 201410448592.3 | 申请日: | 2014-09-04 |
| 公开(公告)号: | CN105468508B | 公开(公告)日: | 2018-07-03 |
| 发明(设计)人: | 徐会卿;张翔 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京鸿德海业知识产权代理事务所(普通合伙) 11412 | 代理人: | 倪志华 |
| 地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 函数调用图 检测 代码检测 有向边连接 调用关系 动态分析 准确度 有向边 调用 申请 | ||
1.一种代码检测方法,其特征在于,包括:
对待检测代码进行静态分析,获得所述待检测代码在静态时所包含的函数和函数之间的调用关系;
根据所述待检测代码在静态时所包含的函数和函数之间的调用关系,生成第二函数调用图,所述第二函数调用图中的节点表示所述待检测代码在静态时包含的函数,所述第二函数调用图中的有向边表示所述有向边所连接的两个节点所表示的函数之间的调用关系;
运行所述待检测代码,以获得第一函数与另一函数之间的调用关系,并在所述第二函数调用图中添加用于表示所述第一函数与另一函数之间的调用关系的有向边,以获得第一函数调用图,所述第一函数为入度为0或出度为0的节点所表示的函数;
根据所述第一函数调用图,检测所述待检测代码中是否存在调用环路。
2.根据权利要求1所述的方法,其特征在于,在运行所述待检测代码之前,该方法还包括:
判断所述第二函数调用图中是否存在入度为0或出度为0的节点;
如果否,则确定所述第二函数调用图为所述第一函数调用图;
如果是,则继续执行运行所述待检测代码的步骤。
3.根据权利要求1所述的方法,其特征在于,所述运行所述待检测代码,以获得第一函数与另一函数之间的调用关系,并在所述第二函数调用图中添加用于表示所述第一函数与另一函数之间的调用关系的有向边,以获得所述第一函数调用图,包括:
利用第二插装代码,监控所述待检测代码的运行过程,以确定所述第一函数与另一函数之间的调用关系,并在所述第二函数调用图中添加用于表示所述第一函数与另一函数之间的调用关系的有向边,以获得所述第一函数调用图。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述第一函数调用图,检测所述待检测代码中是否存在调用环路,包括:
对所述第一函数调用图进行拓扑排序处理,以获得不包括入度为0的节点的第三函数调用图;
若所述第三函数调用图中存在节点,确定所述待检测代码中存在调用环路;
若所述第三函数调用图中不存在节点,确定所述待检测代码中不存在调用环路。
5.根据权利要求4所述的方法,其特征在于,还包括:
在所述待检测代码中存在调用环路时,获得所述待检测代码中存在的调用环路的个数;
根据所述调用环路的个数,确定所述待检测代码的稳定性等级。
6.一种代码检测装置,其特征在于,包括:
分析模块,用于对待检测代码进行静态分析,获得所述待检测代码在静态时所包含的函数和函数之间的调用关系;根据所述待检测代码在静态时所包含的函数和函数之间的调用关系,生成第二函数调用图,所述第二函数调用图中的节点表示所述待检测代码在静态时包含的函数,所述第二函数调用图中的有向边表示所述有向边所连接的两个节点所表示的函数之间的调用关系;运行所述待检测代码,以获得第一函数与另一函数之间的调用关系,并在所述第二函数调用图中添加用于表示所述第一函数与另一函数之间的调用关系的有向边,以获得第一函数调用图,所述第一函数为入度为0或出度为0的节点所表示的函数;
检测模块,用于根据所述第一函数调用图,检测所述待检测代码中是否存在的调用环路。
7.根据权利要求6所述的装置,其特征在于,所述分析模块在运行所述待检测代码之前,还用于:
判断所述第二函数调用图中是否存在入度为0或出度为0的节点;
如果否,则确定所述第二函数调用图为所述第一函数调用图;
如果是,则继续执行运行所述待检测代码的操作。
8.根据权利要求6所述的装置,其特征在于,所述分析模块具体用于:
利用第二插装代码,监控所述待检测代码的运行过程,以确定所述第一函数与另一函数之间的调用关系,并在所述第二函数调用图中添加用于表示所述第一函数与另一函数之间的调用关系的有向边,以获得所述第一函数调用图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410448592.3/1.html,转载请声明来源钻瓜专利网。





