安卓SDK版本检测方法、装置及存储介质制造方法及图纸

技术编号:35500264 阅读:8 留言:0更新日期:2022-11-09 14:08
本公开涉及安卓SDK版本检测方法、装置及存储介质。一种检测SDK版本的方法,包括:反编译步骤,将待检测的APK反编译成源代码和资源文件;特征生成步骤,根据反编译出的源代码和资源文件,生成APK的目录层次结构特征、源代码特征以及源代码的哈希特征码;SDK名称确定步骤,利用SDK名称倒排索引库,对目录层次结构特征进行反向检索,从而确定APK中的SDK名称;相似度生成步骤,根据APK的目录层次结构特征、源代码特征以及源代码的哈希特征码,分别计算APK与SDK的各个版本之间的目录层次结构特征相似度、源代码特征相似度以及哈希特征码相似度;总相似度生成步骤,生成针对SDK的各个版本的总相似度;以及SDK版本确定步骤,根据总相似度来确定APK中的SDK版本。度来确定APK中的SDK版本。度来确定APK中的SDK版本。

【技术实现步骤摘要】
安卓SDK版本检测方法、装置及存储介质


[0001]本公开总体上涉及软然安全领域,更具体地涉及安卓SDK版本检测方法、装置及存储介质。

技术介绍

[0002]由于目前在安卓应用开发流程中缺乏相应的规范和标准,因而在应用开发的过程中可能存在引入不安全的第三方SDK的风险。因此针对第三方SDK进行版本识别和安全预警是非常必要的。

技术实现思路

[0003]在下文中给出了关于本公开的简要概述,以便提供关于本公开的一些方面的基本理解。但是,应当理解,这个概述并不是关于本公开的穷举性概述。它并不是意图用来确定本公开的关键性部分或重要部分,也不是意图用来限定本公开的范围。其目的仅仅是以简化的形式给出关于本公开的某些概念,以此作为稍后给出的更详细描述的前序。
[0004]根据本公开的一个方面,提供一种检测安卓软件开发工具包即SDK版本的方法,包括:反编译步骤,将待检测的安卓安装文件即APK反编译成源代码和资源文件;特征生成步骤,根据反编译出的源代码和资源文件,生成APK的目录层次结构特征、源代码特征以及源代码的哈希特征码,所述目录层次结构特征包括各代码文件的路径,所述源代码特征包括至少源代码中使用的类、函数以及参数,所述哈希特征码是通过对所述源代码进行哈希加权而得到的;SDK名称确定步骤,利用SDK名称倒排索引库,对所述目录层次结构特征进行反向检索,从而确定所述APK中的SDK名称,所述SDK名称倒排索引库是以SDK的目录层次特征中的代码文件路径作为键、以SDK名称作为值而预先建立的索引库;相似度生成步骤,根据所述APK的目录层次结构特征、源代码特征以及源代码的哈希特征码,分别计算所述APK与所述SDK的各个版本之间的目录层次结构特征相似度、源代码特征相似度以及哈希特征码相似度;总相似度生成步骤,根据目录层次结构特征相似度、源代码特征相似度以及哈希特征码相似度,生成针对所述SDK的各个版本的总相似度;以及SDK版本确定步骤,根据所述总相似度来确定所述APK中的SDK版本。
[0005]根据本公开的另一个方面,提供一种检测安卓软件开发工具包即SDK版本的装置,包括:存储器,其上存储有指令;以及处理器,被配置为执行存储在所述存储器上的指令,以执行根据本公开的上述方面所述的方法。
[0006]根据本公开的又一个方面,提供一种计算机可读存储介质,其包括计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行根据本公开的上述方面所述的方法。
[0007]根据本专利技术,能够实现安卓SDK版本检测和安全预警。
附图说明
[0008]构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
[0009]参照附图,根据下面的详细描述,可以更清楚地理解本公开,其中:
[0010]图1示出了本专利技术的实施例的总体的系统框架。
[0011]图2是示出了根据本专利技术的一个实施例的检测安卓软件开发工具包即SDK版本的方法的流程图。
[0012]图3示出了可以实现根据本公开的实施例的计算设备的示例性配置。
具体实施方式
[0013]参考附图进行以下详细描述,并且提供以下详细描述以帮助全面理解本公开的各种示例实施例。以下描述包括各种细节以帮助理解,但是这些细节仅被认为是示例,而不是为了限制本公开,本公开是由随附权利要求及其等同内容限定的。在以下描述中使用的词语和短语仅用于能够清楚一致地理解本公开。另外,为了清楚和简洁起见,可能省略了对公知的结构、功能和配置的描述。本领域普通技术人员将认识到,在不脱离本公开的精神和范围的情况下,可以对本文描述的示例进行各种改变和修改。
[0014]目前在安卓应用开发流程中缺乏相应的规范和标准,因而在应用开发的过程中可能存在引入不安全的第三方SDK的风险。因此针对第三方SDK进行版本识别和安全预警是非常必要的。例如,对于作为某第三方SDK的XX支付模块存在三个版本,即XX支付模块1.0、XX支付模块2.0和XX支付模块2.1,其中XX支付模块表示该SDK的名称,1.0、2.0以及2.1表示该SDK的版本。这三个版本的SDK由于在设计上原因而存在不同的漏洞。因此,需要检测SDK名称以及其版本以制定不同的安全策略。以上举出的三个版本仅是一个例示,版本的数量没有限制,可以是任意的数量。
[0015]图1示出了本专利技术的实施例的总体的系统框架。
[0016]在本专利技术中针对每个SDK的不同版本提取特征而构建SDK特征库。SDK特征库包含SDK目录层次结构特征、SDK源代码特征以及SDK哈希码特征。SDK目录层次结构特征包括SDK的各个文件的路径,例如在一个例子中为“/sources/com/test.java”。SDK源代码特征包括至少源代码中使用的类、函数以及参数。所述哈希特征码是通过对所述源代码进行哈希加权而得到的。
[0017]图2是示出了根据本专利技术的一个实施例的检测安卓软件开发工具包即SDK版本的方法的流程图。
[0018]如图2所示,首先,在反编译步骤S101中,将待检测的安卓安装文件即APK反编译成源代码和资源文件。反编译没有特别的限制,只要能够将APK反编译成源代码和资源文件即可。
[0019]接着,在特征生成步骤S103中,根据反编译出的源代码和资源文件,生成APK的目录层次结构特征、源代码特征以及源代码的哈希特征码,此处,目录层次结构特征包括文件的路径,源代码特征包括至少源代码中使用的类、函数以及参数,哈希特征码是通过对所述源代码进行哈希加权而得到的。在一个实施例中,关于APK的目录层次结构特征,可以存储反编译出的源代码和资源文件的文件路径。在一个实施例中,关于源代码特征,可以存储源
代码的源代码中使用的类、函数以及参数。在一个实施例中,关于哈希特征码特征,可以删除源代码包和导入语句,删除注释,删除空行,将函数访问关键字修改为公共(即PUBLIC),将源代码修改为小写,分词获取标记(Token),将每个标记使用随机投影法生成N维的二进制向量,计算词频

逆文本频率(即TF

IDF)权重,如果TF

IDF权重大于规定的阈值,则对二进制向量乘以预先设定的截断权重,否则对二进制向量乘以TF

IDF权重,从而获得特征向量的加权结果,将特征向量加权之后的结果累加,从而获得哈希特征码特征。
[0020]接着,在SDK名称确定步骤S105中,利用SDK名称倒排索引库,对目录层次结构特征进行反向检索,从而确定APK中的SDK名称,此处的SDK名称倒排索引库是以SDK的目录层次特征中的代码文件路径作为键、以SDK名称作为值而预先建立的索引库。在一个实施例中,确定的SDK名称为“XX支付模块”。在一些实施例中,可以根据目录层次特征生成{目录层次,SDK包名}字典,反向检索字典,从而获得SDK名称。
[0021]接下来,在相似度生成步骤S107中,根据APK的目本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种检测安卓软件开发工具包即SDK版本的方法,包括:反编译步骤,将待检测的安卓安装文件即APK反编译成源代码和资源文件;特征生成步骤,根据反编译出的源代码和资源文件,生成APK的目录层次结构特征、源代码特征以及源代码的哈希特征码,所述目录层次结构特征包括各代码文件的路径,所述源代码特征包括至少源代码中使用的类、函数以及参数,所述哈希特征码是通过对所述源代码进行哈希加权而得到的;SDK名称确定步骤,利用SDK名称倒排索引库,对所述目录层次结构特征进行反向检索,从而确定所述APK中的SDK名称,所述SDK名称倒排索引库是以SDK的目录层次特征中的代码文件路径作为键、以SDK名称作为值而预先建立的索引库;相似度生成步骤,根据所述APK的目录层次结构特征、源代码特征以及源代码的哈希特征码,分别计算所述APK与所述SDK的各个版本之间的目录层次结构特征相似度、源代码特征相似度以及哈希特征码相似度;总相似度生成步骤,根据所述目录层次结构特征相似度、所述源代码特征相似度以及所述哈希特征码相似度,生成针对所述SDK的各个版本的总相似度;以及SDK版本确定步骤,根据所述总相似度来确定所述APK中的SDK版本。2.根据权利要求1所述的方法,其中,在所述特征生成步骤中,删除源代码包和导入语句,删除注释,删除空行,将函数访问关键字修改为公共即PUBLIC,将源代码修改为小写,分词获取标记(Token),将每个标记使用随机投影法生成N维的二进制向量,计算词频

逆文本频率即TF

IDF权重,如果TF

IDF权重大于规定的阈值,则对二进制向量乘以预先设定的截断权重,否则对二进制向量乘以TF

IDF权重,从而获得特征向量的加权结果,将特征向量加权之后的结果累加,从而获得哈希特征码特征。3.根据权利要求1所述的方法,其...

【专利技术属性】
技术研发人员:高思雨
申请(专利权)人:中国电信股份有限公司
类型:发明
国别省市:

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

1