应用程序的分析方法及装置的制造方法

文档序号:8257965阅读:203来源:国知局
应用程序的分析方法及装置的制造方法
【技术领域】
[0001] 本发明涉及计算机技术领域,特别涉及一种应用程序的分析方法及装置。
【背景技术】
[0002] 随着计算机技术的快速发展,使用应用程序的越来越多。开发者在开发一个应用 程序后,通常需要将应用程序上传至应用运营平台,供用户下载使用。为了保护应用程序的 版权,开发者将应用程序上传至应用运营平台时,需要先分析该应用程序与应用运营平台 中已有的应用程序是否存在创意及使用过程等方面上的相似性。若该应用程序与应用运营 平台上已有的应用程序较为相似,则可确定该应用程序不是正版应用程序,并禁止该应用 程序上传至应用运营平台。该判断过程可以是由相关工作人员通过人工分析,判断应用程 序与应用运营平台上已有的应用程序是否相似,根据判断结果确定是否允许应用程序上传 至应用运营平台。
[0003] 在实现本发明的过程中,发明人发现上述方法至少存在以下问题:
[0004] 由于在对应用程序进行分析时,需要进行人工分析,而人工分析需要大量人员持 续投入,从而使得分析成本较高。另外,由于人工分析很难覆盖到应用运营平台中所有的应 用程序,因此,分析时采集的样本有限,导致分析结果较为不准确。

【发明内容】

[0005] 为了解决现有技术的问题,本发明实施例提供了一种应用程序的分析方法及装 置。所述技术方案如下:
[0006] 第一方面,提供了一种应用程序的分析方法,所述方法包括:
[0007] 获取待发布的应用程序安装包;
[0008] 解析所述应用程序安装包;
[0009] 根据解析得到的应用程序代码,提取所述应用程序安装包的特征数据,所述特征 数据包括代码结构特征数据、资源分布特征数据、代码向量和代码函数调用关系特征数据 中至少一项;
[0010] 根据样本数据库中样本安装包的特征数据与所述应用程序安装包的特征数据,进 行相似度分析,所述样本安装包为已发布的应用程序安装包;
[0011] 根据相似度分析结果,对应用程序进行分析。
[0012] 结合第一方面,在第一方面的第一种可能的实现方式中,所述根据解析得到的应 用程序代码,提取所述应用程序安装包的特征数据,包括:
[0013] 根据解析得到的应用程序代码中的目录以及代码文件之间的节点关系,确定代码 结构特征数据;
[0014] 所述根据样本数据库中样本安装包的特征数据与所述应用程序安装包的特征数 据,进行相似度分析,包括:
[0015] 计算每个样本安装包的代码结构特征数据与所述应用程序安装包的代码结构特 征数据之间代码结构的相似度。
[0016]结合第一方面,在第一方面的第二种可能的实现方式中,所述根据解析得到的应 用程序代码,提取所述应用程序安装包的特征数据,包括:
[0017] 根据解析得到的应用程序代码在运行过程中所加载的数据文件的存储路径,得到 资源分布特征数据;
[0018] 所述根据样本数据库中样本安装包的特征数据与所述应用程序安装包的特征数 据,进行相似度分析,包括:
[0019]计算每个样本安装包的每个资源分布特征数据与所述应用程序安装包的每个资 源分布特征数据之间的树编辑距离,根据每个样本安装包的每个资源分布特征数据与所述 应用程序安装包的每个资源分布特征数据之间的树编辑距离,得到树型文件相似度矩阵, 根据所述树型文件相似度矩阵,计算资源分布的相似度。
[0020] 结合第一方面,在第一方面的第三种可能的实现方式中,所述根据解析得到的应 用程序代码,提取所述应用程序安装包的特征数据,包括:
[0021] 根据解析得到的应用程序代码中代码执行指令,确定代码执行指令对应的权重, 所述代码执行指令包括指令代码及操作数据对象;
[0022] 根据所述代码执行指令及对应的权重,确定代码向量;
[0023] 所述根据样本数据库中样本安装包的特征数据与所述应用程序安装包的特征数 据,进行相似度分析,包括:
[0024] 确定每个样本安装包的代码向量与所述应用程序安装包的代码向量之间的交集 及并集,将所述交集中数据的数量与所述并集中数据的数量之间的比值,作为代码向量的 相似度。
[0025]结合第一方面,在第一方面的第四种可能的实现方式中,所述根据解析得到的应 用程序代码,提取所述应用程序安装包的特征数据,包括:
[0026] 根据解析得到的应用程序代码的函数调用关系,确定代码函数调用关系特征数 据;
[0027] 所述根据样本数据库中样本安装包的特征数据与所述应用程序安装包的特征数 据,进行相似度分析,包括:
[0028]计算每个样本安装包的每个代码函数调用关系特征数据与所述应用程序安装包 的每个代码函数调用关系特征数据之间的树编辑距离,根据每个样本安装包的每个代码函 数调用关系特征数据与所述应用程序安装包的每个代码函数调用关系特征数据之间的树 编辑距离,得到函数调用的相似度矩阵,根据所述函数调用的相似度矩阵,计算函数调用的 相似度。
[0029]结合第一方面至第一方面的第四种可能的实现方式中任一种可能的实现方式,在 第一方面的第五种可能的实现方式中,所述根据相似度分析结果,对应用程序进行分析,包 括:
[0030] 根据样本数据库中每个样本安装包与所述应用程序安装包之间代码结构的相似 度数据、资源分布的相似度数据、代码向量的相似度数据及函数调用的相似度数据,确定样 本数据库中每个样本安装包与所述应用程序安装包之间的综合相似度;
[0031] 若存在大于正版阈值的综合相似度,则确定所述应用程序不为正版应用程序。
[0032] 结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式 中,所述根据样本数据库中每个样本安装包与所述应用程序安装包之间代码结构的相似度 数据、资源分布的相似度数据、代码向量的相似度数据及函数调用的相似度数据,确定样本 数据库中每个样本安装包与所述应用程序安装包之间的综合相似度,包括:
[0033] 将样本数据库中每个样本安装包与所述应用程序安装包之间代码结构的相似度 数据、资源分布的相似度数据、代码向量的相似度数据及函数调用的相似度数据分别乘以 相应的权重后进行叠加,将叠加结果作为样本数据库中每个样本安装包与所述应用程序安 装包之间的综合相似度数据。
[0034] 第二方面,提供了一种应用程序的分析装置,所述装置包括:
[0035] 获取模块,用于获取待发布的应用程序安装包;
[0036] 解析模块,用于解析所述获取模块获取到的应用程序安装包;
[0037] 提取模块,用于根据解析模块解析得到的应用程序代码,提取所述应用程序安装 包的特征数据,所述特征数据包括代码结构特征数据、资源分布特征数据、代码向量和代码 函数调用关系特征数据中至少一项;
[0038] 第一分析模块,用于根据样本数据库中样本安装包的特征数据与提取模块提取到 的所述应用程序安装包的特征数据,进行相似度分析,所述样本安装包为已发布的应用程 序安装包;
[0039] 第二分析模块,用于根据第一分析模块分析到的相似度分析结果,对应用程序进 行分析。
[0040] 结合第二方面,在第二方面的第一种可能的实现方式中,所述提取模块,用于根据 解析模块解析得到的应用程序代码中的目录以及代码文件之间的节点关系,确定代码结构 特征数据;
[0041] 所述第一分析模块,用于计算每个样本安装包的代码结构特征数据与所述应用程 序安装包的代码结构特征数据之间代码结构的相似度。
[0042] 结合第二方面,在第二方面的第二种可能的实现方式中,所述提取模块,用于根据 解析模块解析得到的应用程序代码在运行过程中所加载的数据文件的存储路径,得到资源 分布特征数据;
[0043] 所述第一分析模块,用于计算每个样本安装包的每个资源分布特征数据与所述应 用程序安装包的每个资源分布特征数据之间的树编辑距离,根据每个样本安装包的每个资 源分布特征数据与所述应用程序安装包的每个资源分布特征数据之间的树编辑距离,得到 树型文件相似度矩阵,根据所述树型文件相似度矩阵,计算资源分布的相似度。
[0044] 结合第二方面,在第二方面的第三种可能的实现方式中,所述提取模块,用于根据 解析模块解析得到的应用程序代码中代码执行指令,确定代码执行指令对应的权重,所述 代码执行指令包括指令代码及操作数据对象;
[0045
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1