应用程序包分析方法、装置及计算机可读存储介质制造方法及图纸

技术编号:24852956 阅读:17 留言:0更新日期:2020-07-10 19:06
本说明书实施例提供一种应用程序包分析方法,对目标应用程序包进行静态分析,得到应用程序包所包含的对象以及对象间的联系。根据静态分析的结果来构建目标知识图谱,还采用动态分析方法对目标应用程序包中的预设对象进行动态分析,以对目标知识图谱中关于预设对象对应的第一目标节点与其他节点间的关联关系进行更新。这样,构建出的目标知识图谱能够更为全面涵盖目标应用程序包中各对象之间的联系,目标知识图谱可直观且清楚地获知应用程序包中各对象之间的联系,进而可以通过目标知识图谱简单且高效地分析出对应的分析结果。

【技术实现步骤摘要】
应用程序包分析方法、装置及计算机可读存储介质
本说明书实施例涉及互联网
,尤其涉及一种应用程序包分析方法、装置及计算机可读存储介质。
技术介绍
现在的应用程序对应的应用程序包的代码体积越发庞大,各个开发团队仅熟悉自己开发的模块,各个团队之间定义好对应的接口,既可协作完成应用程序的开发。在后续的测试和维护过程中,需要对应用程序包进行业务分析,如果应用程序涉及到安全或者风险问题,往往关联多个模块,涉及多个开发团队,测试人员或安全人员需要与不同团队的人沟通后去深入代码层找寻问题。或者,聘请领域专家去研读代码,对应用程序包进行相关分析,找到问题所在。由此可见,现有技术中对应用程序包的分析需要较大的借助于人力,测试人员或安全人员会消耗大量的时间去做代码阅读和审计,以实现对应用程序包的业务分析,例如:漏洞分析、功能模块分析等。
技术实现思路
本说明书实施例提供及一种应用程序包分析方法、装置及计算机可读存储介质。第一方面,本说明书实施例提供一种应用程序包分析方法,包括:对目标应用程序包进行静态分析,获得静态分析结果,所述静态分析结果包括所述目标应用程序包中的多个对象以及每个对象的关系信息;以所述静态分析结果中的对象为节点,对象的关系信息为节点间的关联关系,构建目标知识图谱;对所述目标应用程序包进行动态分析,获得动态分析结果,所述动态分析结果包括所述目标应用程序包中的预设对象的关系信息,基于所述动态分析结果,在所述目标知识图谱中更新与所述预设对象对应的第一目标节点的关联关系;基于更新后的所述目标知识图谱,对所述目标应用程序包进行业务分析,获得业务分析结果。第二方面,本说明书实施例提供一种应用程序包分析装置,包括:静态分析模块,用于对目标应用程序包进行静态分析,获得静态分析结果,所述静态分析结果包括所述目标应用程序包中的多个对象以及每个对象的关系信息;知识图谱模块,用于以所述静态分析结果中的对象为节点,对象的关系信息为节点间的关联关系,构建目标知识图谱;动态分析模块,用于对所述目标应用程序包进行动态分析,获得动态分析结果,所述动态分析结果包括所述目标应用程序包中的预设对象的关系信息,基于所述动态分析结果,在所述目标知识图谱中更新与所述预设对象对应的第一目标节点的关联关系;知识图谱分析模块,用于基于更新后的所述目标知识图谱,对所述目标应用程序包进行业务分析,获得业务分析结果。第三方面,本说明书实施例提供一种应用程序包分析装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行上述任一项所述方法的步骤。第四方面,本说明书实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述方法的步骤。本说明书实施例有益效果如下:在本说明书实施例提供的应用程序包分析方法,首先,对目标应用程序包进行静态分析,得到应用程序包所包含的对象以及对象间的联系。进而,根据静态分析的结果来构建目标知识图谱,由于静态分析中不能完全分析出对象间的关系,为了更为准确全面地构建目标应用程序包对应的目标知识图谱,还采用动态分析方法对目标应用程序包中的较为重要的预设对象进行动态分析,以对目标知识图谱中关于预设对象对应的第一目标节点与其他节点间的关联关系进行更新(包括增加或删除)这样,构建出的目标知识图谱能够更为全面涵盖目标应用程序包中各对象之间的联系,进一步,利用知识图谱可视化的特征,测试人员以及安全分析人员能够通过目标知识图谱较为直观且清楚地获知应用程序包中各对象之间的联系,所以,可以较好地满足测试人员以及安全分析人员对目标应用程序包的分析需求,进而可以通过目标知识图谱简单且高效地分析出对应的分析结果,有效提高对目标应用程序包的分析效率。附图说明图1为本说明书实施例第一方面提供的应用程序包分析方法流程图;图2为本说明书实施例第一方面提供的以类和方法作为节点时构建知识图谱的示意图;图3为本说明书实施例第二方面提供的应用程序包分析装置结构示意图;图4为本说明书实施例第三方面提供的应用程序包分析装置结构示意图。具体实施方式为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。第一方面,本说明书实施例提供一种应用程序包分析方法,请参考图1,包括S101-S104。S101:对目标应用程序包进行静态分析,获得静态分析结果,所述静态分析结果包括所述目标应用程序包中的多个对象以及每个对象的关系信息;S102:以所述静态分析结果中的对象为节点,对象的关系信息为节点间的关联关系,构建目标知识图谱;S103:对所述目标应用程序包进行动态分析,获得动态分析结果,所述动态分析结果包括所述目标应用程序包中的预设对象的关系信息,基于所述动态分析结果,在所述目标知识图谱中更新与所述预设对象对应的第一目标节点的关联关系;S104:基于更新后的所述目标知识图谱,对所述目标应用程序包进行业务分析,获得业务分析结果。首先,对本实施例中上述步骤中提及的几个关键技术做名词性解释。知识图谱(KnowledgeGraph):在图书情报界称为知识域可视化或知识领域映射地图,是显示知识发展进程与结构关系的一系列各种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。知识图谱是通过将应用数学、图形学、信息可视化技术、信息科学等学科的理论与方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象地展示学科的核心结构、发展历史、前沿领域以及整体知识架构达到多学科融合目的的现代理论。它能为学科研究提供切实的、有价值的参考。静态分析:通过对应用程序包的解析,还原出源码中的对象,并能一定程度上还原对象间的关系。动态分析:通过对应用程序包进行埋点并运行,观察埋点命中情况进而进行分析的一种技术。具体的,本实施例中的方法主要应用于电子设备,该电子设备可以是手机、平板电脑、电脑等设备,当然,还可以是其他电子设备,在此,本实施例不做限制。本实施例中目标应用程序包可以是任意的应用程序包,该应用程序包不限于编写语言与开发环境,比如:基于安卓平台开发的应用程序包apk,或者基于iOS系统开发的应用程序包,对此,本实施例不做限制。本实施例主要以应用程序包为apk包为例进行详细的阐述。针对测试人员以及安全人员的分析需求,希望提供一种类似于思维导图的工具,能方便快捷的知道目标应用程序包中代码之间的联系。而知识图谱是承载这个工具的较好选择,这项技术将信息存储以属性的方式存储在节点中,再通过本文档来自技高网...

【技术保护点】
1.一种应用程序包分析方法,包括:/n对目标应用程序包进行静态分析,获得静态分析结果,所述静态分析结果包括所述目标应用程序包中的多个对象以及每个对象的关系信息;/n以所述静态分析结果中的对象为节点,对象的关系信息为节点间的关联关系,构建目标知识图谱;/n对所述目标应用程序包进行动态分析,获得动态分析结果,所述动态分析结果包括所述目标应用程序包中的预设对象的关系信息,基于所述动态分析结果,在所述目标知识图谱中更新与所述预设对象对应的第一目标节点的关联关系;/n基于更新后的所述目标知识图谱,对所述目标应用程序包进行业务分析,获得业务分析结果。/n

【技术特征摘要】
1.一种应用程序包分析方法,包括:
对目标应用程序包进行静态分析,获得静态分析结果,所述静态分析结果包括所述目标应用程序包中的多个对象以及每个对象的关系信息;
以所述静态分析结果中的对象为节点,对象的关系信息为节点间的关联关系,构建目标知识图谱;
对所述目标应用程序包进行动态分析,获得动态分析结果,所述动态分析结果包括所述目标应用程序包中的预设对象的关系信息,基于所述动态分析结果,在所述目标知识图谱中更新与所述预设对象对应的第一目标节点的关联关系;
基于更新后的所述目标知识图谱,对所述目标应用程序包进行业务分析,获得业务分析结果。


2.根据权利要求1所述的方法,所述对目标应用程序包进行静态分析,获得静态分析结果,包括:
通过对所述目标应用程序包进行反编译,对反编译后的代码进行语法分析,获得所述目标应用程序包中使用的对象以及每个对象的关系信息,所述对象包括所述目标应用程序包中的类、成员函数、成员变量中任意一种或多种组合,所述关系信息包括引用、继承、直接调用、间接调用中的任意一种或多种组合。


3.根据权利要求1所述的方法,所述对所述目标应用程序包进行动态分析,获得动态分析结果,包括:
通过在所述目标应用程序包中预先配置的针对所述预设对象的监控程序,获得在所述目标应用程序包运行过程中所述预设对象与其他对象的关系信息。


4.根据权利要求1所述的方法,在所述目标知识图谱中更新与所述预设对象对应的第一目标节点的关联关系之后,所述方法还包括:
获得目标人员针对所述目标知识图谱中的第二目标节点反馈的关联关系,在所述目标知识图谱中更新所述第二目标节点的关联关系。


5.根据权利要求1所述的方法,所述基于更新后的所述目标知识图谱,对所述目标应用程序包进行业务分析,获得业务分析结果,包括:
获得所述目标应用程序包的上一版本应用程序包对应的上一版本知识图谱;
对上一版本知识图谱和更新后的所述目标知识图谱进行差异分析,获得相同部分;
继承针对所述上一版本知识图谱的分析结果中与所述相同部分对应的第一业务分析结果,所述业务分析结果中包括所述第一业务分析结果。


6.根据权利要求5所述的方法,所述方法还包括:
对上一版本知识图谱和更新后的所述目标知识图谱进行差异分析,获得差异部分;
对所述差异部分进行业务分析,获得第二业务分析结果,所述业务分析结果中包括所述第二业务分析结果。


7.根据权利要求1所述的方法,所述基于更新后的所述目标知识图谱,对所述目标应用程序包进行业务分析,获得业务分析结果,包括:
获得更新后的所述目标知识图谱中满足预设业务分析规则的节点和/或边;
基于满足所述预设业务分析规则的节点和/或边,获得业务分析结果。


8.一种应用程序包分析装置,包括:
静态分析模块,用于对目标应用程序包进行静态分析,获得静态分析结果,所述静态分析结果包括所述目标应用程序...

【专利技术属性】
技术研发人员:李文杰
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

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

1