一种移动客户端的应用程序分析方法及分析系统技术方案

技术编号:15501421 阅读:115 留言:0更新日期:2017-06-03 22:47
本发明专利技术公开了一种移动客户端的应用程序分析方法及分析系统,分析方法包括:选定运行应用程序所调用的操作系统中的关键API;获取移动客户端的操作系统的源码,对关键API进行插桩;在操作系统中运行应用程序,记录应用程序的程序行为;根据程序行为,生成分析结果。本发明专利技术的分析方法通过记录应用程序运行时,应用程序调用操作系统中关键API时所执行的程序行为,并将所记录的程序行为作为分析应用程序是否安全的参考依据,可以极大的减少对数据庞大的样本进行分析的任务量,提高了应用程序分析的效率。

Application program analysis method and analysis system for mobile client

The invention discloses a mobile client application analysis method and system analysis method, including: selected key API operating system calls the application running in the operating system; access to mobile client source code, the key API instrumentation; run the application in the operating system, application program behavior record according to the procedure; behavior, generate analysis results. The analysis method of the present invention by recording the application runs, the implementation of key program behavior API call operating system application, and will analyze whether the application security reference program behavior recorded as, can greatly reduce the amount of task analysis of large sample data, improve the efficiency of application analysis.

【技术实现步骤摘要】
一种移动客户端的应用程序分析方法及分析系统
本专利技术涉及应用程序安全
,特别是涉及一种移动客户端的应用程序分析方法及分析系统。
技术介绍
目前,智能手机、平板电脑等移动终端都具备视频观看、语音通话、搜索等多种多样的功能,而这些功能的实现则主要依赖于在移动终端上所安装的应用程序;在当前的手机操作平台中,往往会出现恶意代码样本数量频发的问题,常规的使用人工逆向分析来判断样本是否存在威胁的方法已经不能胜任数量庞大的应用程序样本群。针对数量庞大、特征繁多的样本群,样本分析工程师缺少一种高效的辅助分析手段,以尽可能全面地触发且监控样本潜在的行为,并了解自身安装的应用是否存在不安全行为。
技术实现思路
本专利技术所要解决的技术问题是:提供一种移动客户端的应用程序分析方法及分析系统,以在不影响程序分析准确性的情况下,提高应用程序分析的效率。本专利技术解决上述技术问题所采用的技术方案是:本专利技术提供了一种移动客户端的应用程序分析方法,包括:选定运行应用程序所调用的操作系统中的关键API;获取移动客户端的操作系统的源码,对关键API进行插桩;在操作系统中运行应用程序,记录应用程序的程序行为;根据程序行为,生成分析结果。进一步的,选定运行应用程序所调用的操作系统中的关键API的过程包括:确定应用程序在操作系统中所要实现的程序功能;获取实现程序功能所要调用的所有API函数,建立API函数的调用顺序;根据调用顺序,选定关键API。进一步的,根据调用顺序,选定关键API的过程包括:根据调用顺序,确定所有API函数的调用层级以及每一调用层级中的API函数的数量;将每一调用层级中,与前一调用层级中的至少两个API函数相关联的API函数,作为关键API。进一步的,根据调用顺序,选定关键API的过程包括:根据调用顺序,确定操作系统中的framework层的所有API的调用层级;以调用层级的最下级的API函数作为关键API。进一步的,获取移动客户端的操作系统的源码,对关键API进行插桩的过程包括:在关键API的入口处或返回处增加打印log的代码,用于执行应用程序时输出log信息;其中,log信息至少包括:log标识、关键API的名称或标识、进程ID、关键API的传入参数和返回参数。进一步的,获取移动客户端的操作系统的源码,对关键API进行插桩的过程还包括:重新编译源码,得到操作系统的镜像。进一步的,在操作系统中运行应用程序,记录应用程序的程序行为的过程包括:在模拟器中运行操作系统,在操作系统中安装应用程序;利用代码调度调试工具控制应用程序执行其程序功能;记录执行程序功能的过程中所输出的log信息,并获取应用程序的程序包名。进一步的,根据程序行为,生成分析结果的过程包括:筛选输出的所有log信息,确定对应关键API的log信息;根据关键API的log信息,按照预设规则匹配关键威胁特征,生成匹配结果报告。进一步的,筛选输出的所有log信息,确定对应关键API的log信息的过程包括:查找所有log信息的log标识,筛选具有log标识的log信息;获取所有log信息的进程ID,通过查找进程ID与对应程序包名进行过滤,确定对应关键API的log信息。本专利技术还提供了一种应用程序分析系统,包括:选定单元,用于选定运行应用程序所调用的操作系统中的关键API;插桩单元,用于获取移动客户端的操作系统的源码,对关键API进行插桩;记录单元,用于在操作系统中运行应用程序,记录应用程序的程序行为;分析单元,用于根据程序行为,生成分析结果。进一步的,选定单元还用于:确定应用程序在操作系统中所要实现的程序功能;获取实现程序功能所要调用的所有API函数,建立API函数的调用顺序;根据调用顺序,选定关键API。进一步的,选定单元还用于:根据调用顺序,确定所有API函数的调用层级以及每一调用层级中的API函数的数量;将每一调用层级中,与前一调用层级中的至少两个API函数相关联的API函数,作为关键API。进一步的,选定单元还用于:根据调用顺序,确定操作系统中的framework层的所有API的调用层级;以调用层级的最下级的API函数作为关键API。进一步的,插桩单元还用于:在关键API的入口处或返回处增加打印log的代码,用于执行应用程序时输出log信息;其中,log信息至少包括:log标识、关键API的名称或标识、进程ID、关键API的传入参数和返回参数。进一步的,插桩单元还用于:重新编译源码,得到操作系统的镜像。进一步的,记录单元还用于:在模拟器中运行操作系统,在操作系统中安装应用程序;利用代码调度调试工具控制应用程序执行其程序功能;记录执行程序功能的过程中所输出的log信息,并获取应用程序的程序包名。进一步的,分析单元还用于:筛选输出的所有log信息,确定对应关键API的log信息;根据关键API的log信息,按照预设规则匹配关键威胁特征,生成匹配结果报告。进一步的,分析单元还用于:查找所有log信息的log标识,筛选具有log标识的log信息;获取所有log信息的进程ID,通过查找进程ID与对应程序包名进行过滤,确定对应关键API的log信息。本专利技术采用上述技术方案所具有的有益效果是:本专利技术的分析方法通过记录应用程序运行时,应用程序调用操作系统中关键API时所执行的程序行为,并将所记录的程序行为作为分析应用程序是否安全的参考依据,可以极大的减少对数据庞大的样本进行分析的任务量,提高了应用程序分析的效率。附图说明图1为本专利技术一实施例中分析方法的整体流程图;图2为本专利技术一实施例中调用顺序及调用层级的示意图。具体实施方式为清楚的说明本专利技术中的方案,下面给出优选的实施例并结合附图详细说明。以下的说明本质上仅仅是示例性的而并不是为了限制本公开的应用或用途。应当理解的是,在全部的附图中,对应的附图标记表示相同或对应的部件和特征。如图1所示,本专利技术提供了一种移动客户端的应用程序分析方法,其步骤包括:S101、选定运行应用程序所调用的操作系统中的关键API;其中,关键API为对应用程序进行分析后,用于后续插桩的系统AI;S102、获取移动客户端的操作系统的源码,对关键API进行插桩;该步骤中,可以采用常规的插桩技术对关键API进行插桩,例如,在应用程序中插入一些“探针”,通过探针来获取程序运行的特征数据;S103、在操作系统中运行应用程序,记录应用程序的程序行为;S104、根据程序行为,生成分析结果。不同于常规分析方法针对大量程序样本进行分析的流程,本专利技术分析方法通过监测及分析应用程序运行所调用的关键API的程序行为,可以有效降低样本分析数量,并能提高应用程序分析的准确性。在本专利技术的一个实施例中,上述步骤101中,选定运行应用程序所调用的操作系统中的关键API的过程包括:确定应用程序在操作系统中所要实现的程序功能;例如,对于优酷、爱奇艺等应用程序,其程序功能就为在线视频播放、本地视频播放等,而对于qq音乐、酷狗音乐等应用程序,其所要实现的程序功能则为音乐播放;需要说明的是,随着应用程序自身附加的程序功能的增多,单一应用程序可以实现多种不同的程序功能,因此我们所选定的关键API则要跟预期分析的程序功能相适配,例如,对于上述的优酷、爱奇艺等应用程序,可以选定在线视频播放功能或者本本文档来自技高网...
一种移动客户端的应用程序分析方法及分析系统

【技术保护点】
一种移动客户端的应用程序分析方法,其特征在于,包括:选定运行所述应用程序所调用的操作系统中的关键API;获取所述移动客户端的操作系统的源码,对所述关键API进行插桩;在所述操作系统中运行所述应用程序,记录所述应用程序的程序行为;根据所述程序行为,生成分析结果。

【技术特征摘要】
1.一种移动客户端的应用程序分析方法,其特征在于,包括:选定运行所述应用程序所调用的操作系统中的关键API;获取所述移动客户端的操作系统的源码,对所述关键API进行插桩;在所述操作系统中运行所述应用程序,记录所述应用程序的程序行为;根据所述程序行为,生成分析结果。2.根据权利要求1所述的分析方法,其特征在于,选定运行所述应用程序所调用的操作系统中的关键API的过程包括:确定所述应用程序在所述操作系统中所要实现的程序功能;获取实现所述程序功能所要调用的所有API函数,建立所述API函数的调用顺序;根据所述调用顺序,选定所述关键API。3.根据权利要求2所述的分析方法,其特征在于,根据所述调用顺序,选定所述关键API的过程包括:根据所述调用顺序,确定所有API函数的调用层级以及每一所述调用层级中的所述API函数的数量;将每一所述调用层级中,与前一调用层级中的至少两个所述API函数相关联的API函数,作为所述关键API。4.根据权利要求2所述的分析方法,其特征在于,根据所述调用顺序,选定所述关键API的过程包括:根据所述调用顺序,确定所述操作系统中的framework层的所有API的调用层级;以所述调用层级的最下级的API函数作为所述关键API。5.根据权利要求2所述的分析方法,其特征在于,获取所述移动客户端的操作系统的源码,对所述关键API进行插桩的过程包括:在所述关键API的入口处或返回处增加打印log的代码,用于执行所述应用程序时输出log信息;其中,所述log信息至少包括:log标识、所述关键API的名称或标识、进程ID、所述关键API的传入参数和返回参数。6.根据权利要求5所述的分析方法,其特征在于,获取所述移动客户端的操作系统的源码,对所述关键API进行插桩的过程还包括:重新编译所述源码,得到所述操作系统的镜像。7.根据权利要求6所述的分析方法,其特征在于,在所述操作系统中运行所述应用程序,记录所述应用程序的程序行为的过程包括:在模拟器中运行所述操作系统,在所述操作系统中安装所述应用程序;利用代码调度调试工具控制所述应用程序执行其程序功能;记录执行所述程序功能的过程中所输出的log信息,并获取所述应用程序的程序包名。8.根据权利要求7所述的分析方法,其特征在于,根据所述程序行为,生成分析结果的过程包括:筛选输出的所有log信息,确定对应所述关键API的所述log信息;根据所述关键API的所述log信息,按照预设规则匹配关键威胁特征,生成匹配结果报告。9.根据权利要求8所述的分析方法,其特征在于,筛选输出的所有log信息,确定对应所述关键API的所述log信息的过程包括:查找所有所述log信息的所述log标识,筛选具有所述log标识...

【专利技术属性】
技术研发人员:颜华甲秦伟杰
申请(专利权)人:北京金山安全管理系统技术有限公司
类型:发明
国别省市:北京,11

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

1