iOS中的应用检测方法、装置及存储介质制造方法及图纸

技术编号:20588658 阅读:46 留言:0更新日期:2019-03-16 07:05
本申请涉及一种iOS中的应用检测方法、装置及存储介质,属于计算机技术领域,该方法包括:在iOS中安装的目标应用运行过程中监控分派函数;获取分派函数在传递消息时的函数调用信息,并生成函数调用列表;根据函数调用列表确定分派函数所调用的每个函数的调用位置;根据调用位置确定目标应用的安全等级;可以解决使用黑盒测试方法检测目标应用的安全性时耗时较长的问题;由于可以在目标应用运行过程中监控分派函数来获取函数的调用过程,根据该过程确定该函数的调用位置来确定目标应用的安全等级,而无需获取目标应用全部的运行日志来进行分析,可以节省分析目标应用安全性的耗时,从而提高对iOS中的应用的测试效率。

Application Detection Method, Device and Storage Medium of iOS

This application relates to an application detection method, device and storage medium of iOS, belonging to the field of computer technology. The method includes: monitoring dispatch function during the running of target application installed in iOS; obtaining function call information of dispatch function when transmitting message, and generating function call list; determining each function called by dispatch function according to function call list. Call location; determine the security level of the target application according to the call location; can solve the problem of long time-consuming using black box testing method to detect the security of the target application; because the calling process of the function can be monitored during the running process of the target application, the call location of the function can be determined according to the process to determine the security level of the target application, without the need for it. Obtaining all the running logs of the target application for analysis can save time in analyzing the security of the target application and improve the testing efficiency of the iOS application.

【技术实现步骤摘要】
iOS中的应用检测方法、装置及存储介质
本申请涉及iOS中的应用检测方法、装置及存储介质,属于计算机

技术介绍
iOS由于系统闭源的原因让大部分用户认为iOS系统很安全,但事实上iOS的安全问题也很严峻。比如:应用在联网时向攻击者注册的域名回传用户信息,导致用户遭受弹窗攻击或者被远程控制等问题。又比如:某邮箱的数据疑似泄露,导致使用该邮箱作为iCloud账号的用户的iOS设备被锁或存储数据被清空。因此,检测iOS中的应用的安全性是十分必要的。目前,对iOS中的应用的安全性进行检测的方法,包括:使用Introspy对iOS中的应用进行黑盒测试。Introspy包括追踪器和分析器,通过追踪器在应用运行时对应用进行分析,该追踪器把信息保存到sqlite文件中以便后续通过分析器进行分析;追踪器可以把所有信息都输出到设备的控制台上,分析器可以用这个数据库文件生成一个详尽的报告。然而,黑盒测试过程中会将应用所有的运行日志均进行输出供开发者分析,这会导致确定应用安全性的耗时较长,从而导致对iOS中的应用的测试效率较低的问题。
技术实现思路
本申请提供了一种iOS中的应用检测方法、装置及存储介质,可以解决使用黑盒测试方法检测目标应用的安全性时耗时较长的问题。本申请提供如下技术方案:第一方面,提供了一种iOS中的应用检测方法,所述方法包括:在iOS中安装的目标应用运行过程中监控分派函数,所述分派函数用于在所述目标应用运行过程中调用函数来传递消息;获取所述分派函数在传递消息时的函数调用信息,并生成函数调用列表;根据所述函数调用列表确定所述分派函数所调用的每个函数的调用位置;根据所述调用位置确定所述目标应用的安全等级。可选地,所述监控分派函数,包括:使用钩子hook函数监控所述分派函数是否被调用,所述hook函数用于在所述分派函数被调用时获取并记录所述分派函数携带的函数调用信息。可选地,所述根据所述函数调用列表确定所述分派函数所调用的每个函数的调用位置,包括:使用文件获取工具获取所述函数调用列表;根据所述函数调用列表生成调试脚本,所述调试脚本包括针对所述分派函数的断点;运行所述调试脚本;在运行所述调试脚本至所述断点时获取所述分派函数当前调用的函数的调用位置,得到每个断点对应的调用位置。可选地,所述根据所述调用位置确定所述目标应用的安全等级,包括:根据每个调用位置的调用次数确定所述目标应用的安全等级,所述调用次数与所述安全等级呈负相关关系。可选地,所述根据所述调用位置确定所述目标应用的安全等级之后,还包括:向远程控制端发送所述目标程序的用户界面图像信息,所述用户界面图像信息用于供所述远程控制端模拟用户对所述目标程序进行控制;接收所述远程控制端发送的控制指令;根据所述控制指令执行所述目标应用并记录所述目标应用的响应信息;根据所述响应信息调整所述安全等级。第二方面,提供了一种iOS中的应用检测装置,所述装置包括:分派函数监控模块,用于在iOS中安装的目标应用运行过程中监控分派函数,所述分派函数用于在所述目标应用运行过程中调用函数来传递消息;调用信息获取模块,用于获取所述分派函数在传递消息时的函数调用信息,并生成函数调用列表;调用位置确定模块,用于根据所述函数调用列表确定各所述分派函数所调用的每个函数的调用位置;安全等级确定模块,用于根据所述调用位置确定所述目标应用的安全等级。可选地,所述分派函数监控模块,用于:使用钩子hook函数监控所述分派函数是否被调用,所述hook函数用于在所述分派函数被调用时获取并记录所述分派函数携带的函数调用信息。可选地,所述调用位置确定模块,用于:使用文件获取工具获取所述函数调用列表;根据所述函数调用列表生成调试脚本,所述调试脚本包括针对所述分派函数的断点;运行所述调试脚本;在运行所述调试脚本至所述断点时获取所述分派函数当前调用的函数的调用位置,得到每个断点对应的调用位置。第三方面,提供一种iOS中的应用检测装置,所述装置包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现第一方面所述的iOS中的应用检测方法。第四方面,提供一种计算机可读存储介质,所述存储介质中存储有程序,所述程序由所述处理器加载并执行以实现第一方面所述的iOS中的应用检测方法。本申请的有益效果在于:通过在iOS中安装的目标应用运行过程中监控分派函数;获取分派函数在传递消息时的函数调用信息,并生成函数调用列表;根据函数调用列表确定分派函数所调用的每个函数的调用位置;根据调用位置确定目标应用的安全等级;可以解决使用黑盒测试方法检测目标应用的安全性时耗时较长的问题;由于可以在目标应用运行过程中监控分派函数来获取函数的调用过程,根据该过程确定该函数的调用位置来确定目标应用的安全等级,而无需获取目标应用全部的运行日志来进行分析,可以节省分析目标应用安全性的耗时,从而提高对iOS中的应用的测试效率。上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,并可依照说明书的内容予以实施,以下以本申请的较佳实施例并配合附图详细说明如后。附图说明图1是本申请一个实施例提供的iOS中的应用检测方法的流程图;图2是本申请一个实施例提供的获取函数调用信息的方法的流程图;图3是本申请一个实施例提供的确定各个函数的调用位置的方法的流程图;图4是本申请一个实施例提供的远程控制端对目标程序进行控制的方法的流程图;图5是本申请一个实施例提供的iOS中的应用检测装置的框图;图6是本申请一个实施例提供的iOS中的应用检测装置的框图。具体实施方式下面结合附图和实施例,对本申请的具体实施方式作进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。首先,对本申请涉及的若干名词进行介绍。1、分派函数:分派函数用于在iOS中的应用运行过程中调用函数来传递消息。示意性地,分派函数可以为iOS中的objc_msgSend函数。objc_msgSend函数传递消息时的格式如下:objc_msgSend(idself,SELcmd,...)objc_msgSend函数是参数个数可变的函数,该函数能接收两个或两个以上的参数。第一个参数“idself”表示消息的接收者;第二个参数“SELcmd”表示选择子的类型;后续参数可以为消息中的参数。其中,选择子是指objc_msgSend函数调用的函数的名称,当然,选择子还可以称为方法等,本实施例不对选择子的命名方式作限定。分派函数在传递消息时会根据接收者与选择子的类型来调用适当的函数。为了完成此操作,分派函数需要在接收者所属的类中搜寻其“方法列表”(listofmethods),如果能找到与选择子名称相符的函数,就跳至其实现代码。若是找不到,那就沿着继承体系继续向上查找,等找到合适的函数之后再跳转。如果最终还是找不到相符的函数,那就执行“消息转发”(messageforwarding)操作。2、钩子(hook)函数:是一段用以处理系统消息的程序。通过系统调用,可以将hook函数挂入系统。hook函数允许程序截获系统的消息或者特定事件。本申请中,hook函数可以截获iOS系统中分派函数被调用的事件。3、文件获取工具:用于发现应用使用了系统中的哪些函数。文件获取工具可以是iOS系本文档来自技高网...

【技术保护点】
1.一种iOS中的应用检测方法,其特征在于,所述方法包括:在iOS中安装的目标应用运行过程中监控分派函数,所述分派函数用于在所述目标应用运行过程中调用函数来传递消息;获取所述分派函数在传递消息时的函数调用信息,并生成函数调用列表;根据所述函数调用列表确定所述分派函数所调用的每个函数的调用位置;根据所述调用位置确定所述目标应用的安全等级。

【技术特征摘要】
1.一种iOS中的应用检测方法,其特征在于,所述方法包括:在iOS中安装的目标应用运行过程中监控分派函数,所述分派函数用于在所述目标应用运行过程中调用函数来传递消息;获取所述分派函数在传递消息时的函数调用信息,并生成函数调用列表;根据所述函数调用列表确定所述分派函数所调用的每个函数的调用位置;根据所述调用位置确定所述目标应用的安全等级。2.根据权利要求1所述的方法,其特征在于,所述监控分派函数,包括:使用钩子hook函数监控所述分派函数是否被调用,所述hook函数用于在所述分派函数被调用时获取并记录所述分派函数携带的函数调用信息。3.根据权利要求1所述的方法,其特征在于,所述根据所述函数调用列表确定所述分派函数所调用的每个函数的调用位置,包括:使用文件获取工具获取所述函数调用列表;根据所述函数调用列表生成调试脚本,所述调试脚本包括针对所述分派函数的断点;运行所述调试脚本;依次在运行所述调试脚本至所述断点时获取所述分派函数当前调用的函数的调用位置,得到每个断点对应的调用位置。4.根据权利要求1所述的方法,其特征在于,所述根据所述调用位置确定所述目标应用的安全等级,包括:根据每个调用位置的调用次数确定所述目标应用的安全等级,所述调用次数与所述安全等级呈负相关关系。5.根据权利要求1至4任一所述的方法,其特征在于,所述根据所述调用位置确定所述目标应用的安全等级之后,还包括:向远程控制端发送所述目标程序的用户界面图像信息,所述用户界面图像信息用于供所述远程控制端模拟用户对所述目标程序进行控制;接收所述远程控制端发送的控制指令;根据所述...

【专利技术属性】
技术研发人员:王顺宋宁宁傅政
申请(专利权)人:苏州科达科技股份有限公司
类型:发明
国别省市:江苏,32

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

1