[发明专利]一种代码耦合检测方法、装置、终端设备及存储介质有效
申请号: | 201911205937.1 | 申请日: | 2019-11-29 |
公开(公告)号: | CN110928797B | 公开(公告)日: | 2021-01-22 |
发明(设计)人: | 曾庆隆;彭飞;邓竹立 | 申请(专利权)人: | 五八有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/445 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 300450 天津市滨海新区经济技术开*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 耦合 检测 方法 装置 终端设备 存储 介质 | ||
1.一种代码耦合检测方法,其特征在于,包括:
扫描待检测的中间件中的每个文件,获取所述中间件中的每个引用头文件,以及所述引用头文件在所述中间件中的引用形式;
根据所述中间件针对所述引用头文件的引用形式,检测所述引用头文件是否为其他工程文件,所述其他工程文件为除去所述中间件内部的头文件,所述中间件在非耦合状态下依赖的系统库和三方库之外的其他文件;
响应于存在至少一个所述引用头文件为其他工程文件,确认所述中间件中存在代码耦合;
其中,在所述根据所述中间件针对所述引用头文件的引用形式,检测所述引用头文件是否为其他工程文件的步骤之前,还包括:
获取所述中间件在非耦合状态下依赖的系统库和三方库;
根据所述系统库、所述三方库以及所述中间件,构建所述中间件关联的白名单和头文件列表;
所述根据所述中间件针对所述引用头文件的引用形式,检测所述引用头文件是否为其他工程文件的步骤,包括:
根据所述中间件针对所述引用头文件的引用形式,确定用以检测所述引用头文件是否为其他工程文件的检测路径,所述检测路径包括在所述白名单中检测,和/或在所述头文件列表中检测;
根据所述检测路径,检测所述引用头文件是否为其他工程文件。
2.根据权利要求1所述的方法,其特征在于,所述根据所述系统库、所述三方库以及所述中间件,构建所述中间件关联的白名单和头文件列表的步骤,包括:
根据所述中间件中包含的全部头文件,以及以.a为文件后缀名的三方库中包含的头文件,构建所述头文件列表;
根据所述系统库以及以.framework为文件后缀名的三方库,构建所述白名单。
3.根据权利要求2所述的方法,其特征在于,所述根据所述中间件针对所述引用头文件的引用形式,确定用以检测所述引用头文件是否为其他工程文件的检测路径的步骤,包括:
针对每个所述引用头文件,响应于所述中间件针对所述引用头文件的引用形式为基于引号的引用形式,确定所述引用头文件的检测路径为在所述头文件列表中检测所述引用头文件;
响应于所述中间件针对所述引用头文件的引用形式为基于尖括号的引用形式,确定所述引用头文件的检测路径为在所述白名单中检测所述引用头文件。
4.根据权利要求3所述的方法,其特征在于,所述根据所述检测路径,检测所述引用头文件是否为其他工程文件的步骤,包括:
响应于所述引用头文件的检测路径为在所述白名单中检测所述引用头文件,且所述引用头文件的引用形式为基于尖括号且包含库标识的引用形式,获取所述库标识,并在所述白名单中查找所述库标识;
如果在所述白名单中未查找到所述库标识,确认所述引用头文件为其他工程文件;
响应于所述引用头文件的检测路径为在所述白名单中检测所述引用头文件,且所述引用头文件的引用形式为基于尖括号且不包含库标识的引用形式,在所述白名单中查找所述引用头文件的文件标识;
如果在所述白名单中未查找到所述文件标识,确认所述引用头文件为其他工程文件;
响应于所述引用头文件的检测路径为在所述头文件列表中检测所述引用头文件,在所述头文件列表中查找所述引用头文件的文件标识;
如果在所述头文件列表中未查找到所述文件标识,确认所述引用头文件为其他工程文件。
5.根据权利要求1-4中任一项时所述的方法,其特征在于,在所述根据所述中间件针对所述引用头文件的引用形式,检测所述引用头文件是否为其他工程文件的步骤之后,还包括:
响应于所述引用头文件为其他工程文件,记录所述引用头文件的文件信息到预设的异常文件中;
其中,所述文件信息包括所述引用头文件的文件路径、所述引用头文件在所述中间件中的引用信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于五八有限公司,未经五八有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911205937.1/1.html,转载请声明来源钻瓜专利网。