[发明专利]一种移动客户端的应用程序分析方法及分析系统在审
申请号: | 201611050413.6 | 申请日: | 2016-11-24 |
公开(公告)号: | CN106778264A | 公开(公告)日: | 2017-05-31 |
发明(设计)人: | 颜华甲;秦伟杰 | 申请(专利权)人: | 北京金山安全管理系统技术有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 北京康盛知识产权代理有限公司11331 | 代理人: | 张宇峰 |
地址: | 100041 北京市石景山*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 移动 客户端 应用程序 分析 方法 系统 | ||
技术领域
本发明涉及应用程序安全技术领域,特别是涉及一种移动客户端的应用程序分析方法及分析系统。
背景技术
目前,智能手机、平板电脑等移动终端都具备视频观看、语音通话、搜索等多种多样的功能,而这些功能的实现则主要依赖于在移动终端上所安装的应用程序;在当前的手机操作平台中,往往会出现恶意代码样本数量频发的问题,常规的使用人工逆向分析来判断样本是否存在威胁的方法已经不能胜任数量庞大的应用程序样本群。针对数量庞大、特征繁多的样本群,样本分析工程师缺少一种高效的辅助分析手段,以尽可能全面地触发且监控样本潜在的行为,并了解自身安装的应用是否存在不安全行为。
发明内容
本发明所要解决的技术问题是:提供一种移动客户端的应用程序分析方法及分析系统,以在不影响程序分析准确性的情况下,提高应用程序分析的效率。
本发明解决上述技术问题所采用的技术方案是:
本发明提供了一种移动客户端的应用程序分析方法,包括:选定运行应用程序所调用的操作系统中的关键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的传入参数和返回参数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京金山安全管理系统技术有限公司,未经北京金山安全管理系统技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611050413.6/2.html,转载请声明来源钻瓜专利网。