一种第三方库检测方法及装置制造方法及图纸

技术编号:30805040 阅读:22 留言:0更新日期:2021-11-16 08:12
本说明书一个或多个实施例提供一种第三方库检测方法及装置,包括:对应用程序包进行反编译,识别混淆的待测第三方库;确定用于代表待测第三方库的核心逻辑类;从所述核心逻辑类中提取多个指令特征,形成特征文件;响应于所述特征文件与标准库的标准库文件达到预设的匹配条件,所述待测第三方库为所述标准库。本说明书能够降低计算量,提高匹配精度,提高检测效率。检测效率。检测效率。

【技术实现步骤摘要】
一种第三方库检测方法及装置


[0001]本说明书一个或多个实施例涉及软件
,尤其涉及一种第三方库检测方法及装置。

技术介绍

[0002]第三方库广泛用于构建新功能或整合外部服务,同时存在攻击宿主应用程序的安全性问题。一般的应用程序为防止反编译获取源代码,会对源代码进行混淆,所调用的第三方库名称被改变,不利于检测出第三方库及其安全性。
[0003]目前的第三方库检测方法,例如,基于白名单的检测、基于聚类的检测和基于特征匹配的检测等,需要对第三方库整体进行特征提取与匹配,计算量大,特征量大影响匹配精度,检测效率不高。

技术实现思路

[0004]有鉴于此,本说明书一个或多个实施例的目的在于提出一种第三方库检测方法及装置,以解决第三方库的检测问题。
[0005]基于上述目的,本说明书一个或多个实施例提供了一种第三方库检测方法,包括:对应用程序包进行反编译,识别混淆的待测第三方库;确定用于代表待测第三方库的核心逻辑类;从所述核心逻辑类中提取多个指令特征,形成特征文件;响应于所述特征文件与标准库的标准库文件达到预设的匹配条件,所述待测第三方库为所述标准库。
[0006]可选的,所述核心逻辑类的特征包括:位于顶层接口类和底层工具类之间的位置;连接所述待测第三方库中达到预定第一数量的类;调用所述待测第三方库中达到预定第二数量的自定义方法;以及包含达到预定第三数量的指令集操作码。
[0007]可选的,所述确定用于代表待测第三方库的核心逻辑类,包括:根据反编译后获得的多个smali文件,确定各smali文件之间的依赖关系,并确定顶层接口类和底层工具类;根据所述依赖关系构造转移矩阵和初始影响力矩阵;将所述转移矩阵和初始影响力矩阵进行迭代相乘,直至达到收敛条件,得到最终影响力矩阵;根据所述最终影响力矩阵,排除所述顶层接口类和底层工具类之后,选取影响力最大的类作为所述核心逻辑类。
[0008]可选的,所述收敛条件为:当所述转移矩阵和初始影响力矩阵或迭代过程中生成的中间影响力矩阵单次相乘超过时间阈值时,停止迭代;和/或,
本次相乘后,所述初始影响力矩阵中原本不为0的一项或几项变为0,停止迭代。
[0009]可选的,所述从核心逻辑类中提取多个指令特征,形成特征文件,包括:确定所述核心逻辑类所使用的所有方法,以及每个方法所使用的所有指令特征;将所述指令特征处理为指令摘要特征;以每个方法的所有指令摘要特征为一行,构造包括所有方法的所有指令摘要特征的特征文件。
[0010]可选的,所述响应于所述特征文件与标准库的标准库文件达到预设的匹配条件,待测第三方库为所述标准库,包括:根据所述特征文件的内容和标准库文件的内容,对所述标准库进行筛选,得到筛选后的标准库;利用滑动窗口的特征匹配方法,将所述特征文件与筛选后的标准库的标准库文件进行匹配,得到与待测第三方库匹配的标准库。
[0011]可选的,所述根据所述特征文件的内容和标准库文件的内容,对所述标准库进行筛选,得到筛选后的标准库,包括:根据所述特征文件中的方法数量与标准库文件中的方法数量,所述特征文件中的指令摘要特征数量和标准库文件中的指令摘要特征数量,按照预设的初筛条件,进行第一次筛选,得到初步筛选后的标准库;根据所述特征文件中每行的指令摘要特征数量与初步筛选后的标准库的标准库文件中每行的指令指令摘要特征数量,按照预设的二次筛选条件,进行第二次筛选,得到二次筛选后的标准库。
[0012]可选的,所述利用滑动窗口的特征匹配方法,将所述特征文件与筛选后的标准库的标准库文件进行匹配,得到与待测第三方库匹配的标准库,包括:根据所述特征文件中的每行指令摘要特征与所述二次筛选后的标准库的标准库文件的每行指令摘要特征,利用滑动窗口进行特征匹配,得到特征匹配结果;根据所述特征匹配结果,确定符合匹配条件的标准库;计算所述符合匹配条件的标准库的匹配分数,选取匹配分数最高的标准库作为与待测第三方库匹配的标准库。
[0013]可选的,所述计算匹配分数的方法为:根据所述标准库文件中指令摘要特征的总数、滑动窗口匹配过程中的异步滑动总次数、匹配成功的方法数、方法总数、所述指令摘要特征所占权重,以及方法所占权重,计算所述匹配分数。
[0014]本说明书实施例提供一种第三方库检测装置,包括:识别模块,用于对应用程序包进行反编译,识别混淆的待测第三方库;确定模块,用于确定用于代表待测第三方库的核心逻辑类;提取模块,用于从所述核心逻辑类中提取多个指令特征,形成特征文件;匹配模块,用于响应于所述特征文件与标准库的标准库文件达到预设的匹配条件,所述待测第三方库为所述标准库。
[0015]从上面所述可以看出,本说明书一个或多个实施例提供的第三方库检测方法及装置,通过对应用程序包进行反编译,识别混淆的待测第三方库,确定用于代表待测第三方库
的核心逻辑类,从核心逻辑类中提取多个指令特征,形成特征文件,当特征文件与标准库的标准库文件达到预设的匹配条件,待测第三方库为标准库。本说明书能够降低计算量,提高匹配精度,提高检测效率。
附图说明
[0016]为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书一个或多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0017]图1为本说明书一个或多个实施例的方法流程示意图;图2为本说明书一个或多个实施例的确定核心逻辑类的方法流程示意图;图3为本说明书一个或多个实施例的部分smali文件的内容示意图;图4为本说明书一个或多个实施例的类之间的链接关系示意图;图5为本说明书一个或多个实施例的转移矩阵的示意图;图6为本说明书一个或多个实施例的初始影响力矩阵的示意图;图7为本说明书另一个实施例的类之间的链接关系示意图;图8为本说明书一个或多个实施例的最终影响力矩阵的示意图;图9为本说明书一个或多个实施例的特征文件的内容示意图;图10为本说明书一个或多个实施例的滑动窗口匹配的示意图;图11为本说明书一个或多个实施例的装置结构示意图;图12为本说明书一个或多个实施例的电子设备结构示意图。
具体实施方式
[0018]为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
[0019]需要说明的是,除非另外定义,本说明书一个或多个实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本说明书一个或多个实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种第三方库检测方法,其特征在于,包括:对应用程序包进行反编译,识别混淆的待测第三方库;确定用于代表待测第三方库的核心逻辑类;从所述核心逻辑类中提取多个指令特征,形成特征文件;响应于所述特征文件与标准库的标准库文件达到预设的匹配条件,所述待测第三方库为所述标准库。2.根据权利要求1所述的方法,其特征在于,所述核心逻辑类的特征包括:位于顶层接口类和底层工具类之间的位置;连接所述待测第三方库中达到预定第一数量的类;调用所述待测第三方库中达到预定第二数量的自定义方法;以及包含达到预定第三数量的指令集操作码。3.根据权利要求1或2所述的方法,其特征在于,所述确定用于代表待测第三方库的核心逻辑类,包括:根据反编译后获得的多个smali文件,确定各smali文件之间的依赖关系,并确定顶层接口类和底层工具类;根据所述依赖关系构造转移矩阵和初始影响力矩阵;将所述转移矩阵和初始影响力矩阵进行迭代相乘,直至达到收敛条件,得到最终影响力矩阵;根据所述最终影响力矩阵,排除所述顶层接口类和底层工具类之后,选取影响力最大的类作为所述核心逻辑类。4.根据权利要求3所述的方法,其特征在于,所述收敛条件为:当所述转移矩阵和初始影响力矩阵或迭代过程中生成的中间影响力矩阵单次相乘超过时间阈值时,停止迭代;和/或,本次相乘后,所述初始影响力矩阵中原本不为0的一项或几项变为0,停止迭代。5.根据权利要求1所述的方法,其特征在于,所述从核心逻辑类中提取多个指令特征,形成特征文件,包括:确定所述核心逻辑类所使用的所有方法,以及每个方法所使用的所有指令特征;将所述指令特征处理为指令摘要特征;以每个方法的所有指令摘要特征为一行,构造包括所有方法的所有指令摘要特征的特征文件。6.根据权利要求1所述的方法,其特征在于,所述响应于所述特征文件与标准库的标准库文件达到预设的匹配条件,待测第三方库为所述标准库,包括:根据所述特征文件的内容和标准库文件的内容,对所述标准库进行筛...

【专利技术属性】
技术研发人员:高飞文惠东秦素娟温巧燕李文敏
申请(专利权)人:北京邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1