安卓应用程序的动态行为监测方法及系统技术方案

技术编号:11071755 阅读:127 留言:0更新日期:2015-02-25 11:13
本发明专利技术提供了一种安卓应用程序的动态行为监测方法及系统,涉及安卓应用程序监测技术领域,方法包括监测主机在待测应用程序所需调用的敏感操作系统应用程序编程接口的代码处设置断点;移动设备在运行待测的应用程序时,若调用了敏感操作系统应用程序编程接口,则触发一断点事件;移动设备将断点事件发送给监测主机;监测主机向移动设备发送监测数据请求报文;移动设备向监测主机发送被移动设备调用的敏感操作系统应用程序编程接口的监测数据;监测主机将监测数据进行显示。本发明专利技术能够解决当前采用API HOOK技术或者应用重打包技术来进行动态行为分析造成的测试结果不准确,且安卓终端权限不允许和对相关系统功能的修改可能带来兼容性的问题。

【技术实现步骤摘要】

本专利技术涉及安卓应用程序监测
,尤其涉及一种安卓应用程序的动态行为监测方法及系统
技术介绍
动态行为分析是通过动态运行应用程序的方式对其行为进行建模的一类技术的统称。此类行为建模技术的特点是首先启动应用软件,监测其运行过程中执行的各种操作,最终得到的一系列监测记录。动态行为分析技术在代码性能优化、程序正确性验证以及软件安全检测等领域得到了广泛应用。目前在对安卓应用程序进行安全性检测时,使用的动态行为分析技术一般有API HOOK和应用重打包两种。其中,基于API HOOK技术的动态行为分析方法通过修改操作系统功能调用的入口点,将其指向由分析人员编写的一段自定义代码。当应用程序调用相关系统功能时,这段自定义的代码首先被执行,并记录有关的调用信息,例如调用时间、调用者进程的名称、调用栈的内容以及传递的参数值等,之后再返回到真正的系统功能代码中继续完成操作。基于应用重打包技术的动态行为分析方法通过逆向工程将应用的可执行文件还原成接近源代码的内容,对于其中的目标操作系统功能调用,在执行调用的代码前插入一段自定义的代码用于记录调用事件的相关信息,随后再将接近源代码的内容重新打包成可执行文件。在运行这个新的可执行文件时,插入的自定义代码将在系统功能调用之前运行,从而实现相关信息的记录。可见,当前无论采用API HOOK技术或者应用重打包技术,均需要对应用程序或操作系统相关功能进行修改,造成测试对象发生变化,使得测试结果失去效力;另外,对相关系统功能进行修改需要root权限,而很多安卓终端均不开放此类权限;此外,对相关系统功能的修改可能带来兼容性问题。
技术实现思路
本专利技术的实施例提供一种安卓应用程序的动态行为监测方法及系统,以解决当前采用API HOOK技术或者应用重打包技术来进行动态行为分析造成的测试结果不准确,且安卓终端权限不允许和对相关系统功能的修改可能带来兼容性的问题。为达到上述目的,本专利技术采用如下技术方案:一种安卓应用程序的动态行为监测方法,包括:监测主机在待测应用程序所需调用的敏感操作系统应用程序编程接口的代码处设置断点;所述监测主机向移动设备发送监测命令报文;在接收到所述监测命令报文后,移动设备在运行所述待测的应用程序时,若调用了所述敏感操作系统应用程序编程接口,则触发一断点事件;所述移动设备暂停运行所述待测的应用程序,并将所述断点事件发送给所述监测主机;所述监测主机在接收到所述断点事件后,向所述移动设备发送监测数据请求报文;所述移动设备根据所述监测数据请求报文向所述监测主机发送被移动设备调用的所述敏感操作系统应用程序编程接口的监测数据;所述监测主机将所述监测数据进行显示。具体的,所述监测数据包括所述敏感操作系统应用程序编程接口的函数名、类名、待测的应用程序向敏感操作系统应用程序编程接口函数发送的参数值以及调用栈信息。此外,在监测主机在待测应用程序所需调用的敏感操作系统应用程序编程接口的代码处设置断点之前,所述方法还包括:所述移动设备运行所述待测的应用程序,并启动一Dalvik虚拟机进程;所述Dalvik虚拟机进程包括一调试线程,所述调试线程中记录有所述Dalvik虚拟机进程的身份标识;所述移动设备建立所述调试线程与移动设备中的设备端代理的Socket连接;所述移动设备通过所述设备端代理,将所述身份标识发送给所述监测主机。进一步的,所述安卓应用程序的动态行为监测方法,还包括:所述监测主机通过监测主机中的Dalvik调试管理库为所述身份标识对应的Dalvik虚拟机进程选择一个本地TCP端口作为本地调试端口;所述监测主机建立所述本地TCP端口与所述调试线程的数据包转发连接。另外,在所述监测主机将所述监测数据进行显示之后,所述方法还包括:所述监测主机向所述移动设备发送应用程序继续运行指令;所述移动设备在接收到所述应用程序继续运行指令后,控制被暂停的所述待测的应用程序继续运行。一种安卓应用程序的动态行为监测系统,包括:通过USB接口连接的监控主机和移动设备;其中,所述监测主机,用于在待测应用程序所需调用的敏感操作系统应用程序编程接口的代码处设置断点,并向移动设备发送监测命令报文;所述移动设备,用于在运行所述待测的应用程序,且调用了所述敏感操作系统应用程序编程接口时,触发一断点事件;所述移动设备,还用于暂停运行所述待测的应用程序,并将所述断点事件发送给所述监测主机;所述监测主机,还用于在接收到所述断点事件后,向所述移动设备发送监测数据请求报文;所述移动设备,还用于根据所述监测数据请求报文向所述监测主机发送被移动设备调用的所述敏感操作系统应用程序编程接口的监测数据;所述监测主机,还用于将所述监测数据进行显示。具体的,所述移动设备发送的监测数据包括所述敏感操作系统应用程序编程接口的函数名、类名、待测的应用程序向敏感操作系统应用程序编程接口函数发送的参数值以及调用栈信息。进一步的,所述移动设备,还用于运行所述待测的应用程序,并启动一Dalvik虚拟机进程;所述Dalvik虚拟机进程包括一调试线程,所述调试线程中记录有所述Dalvik虚拟机进程的身份标识;建立所述调试线程与移动设备中的设备端代理的Socket连接,并通过所述设备端代理,将所述身份标识发送给所述监测主机。进一步的,所述监测主机,还用于通过监测主机中的Dalvik调试管理库为所述身份标识对应的Dalvik虚拟机进程选择一个本地TCP端口作为本地调试端口;建立所述本地TCP端口与所述调试线程的数据包转发连接。另外,所述监测主机还用于向所述移动设备发送应用程序继续运行指令;所述移动设备,还用于在接收到所述应用程序继续运行指令后,控制被暂停的所述待测的应用程序继续运行。本专利技术实施例提供的安卓应用程序的动态行为监测方法及系统,监测主机在待测应用程序所需调用的敏感操作系统应用程序编程接口的代码处设置断点,向移动设备发送监测命令报文;在接收到所述监测命令报文后,移动设备在运行所述待测的应用程序时,若调用了所述敏感操作系统应用程序编程接口,则触发一断点事件;所述移动设备暂停运行所述待测的应用程序,并将所述断点事件发送给所述监测主机;所述监测主机在接收到所述断点事件后,向所述移动设备发送监测数据请求报文;所述移动设备根据所述监测数据请求报文向所述监测主机发送被移动设备调用的所述敏感操作系统应用程序编程接口的监测数据;所述监测主机将本文档来自技高网
...
安卓应用程序的动态行为监测方法及系统

【技术保护点】
一种安卓应用程序的动态行为监测方法,其特征在于,包括:监测主机在待测应用程序所需调用的敏感操作系统应用程序编程接口的代码处设置断点;所述监测主机向移动设备发送监测命令报文;在接收到所述监测命令报文后,移动设备在运行所述待测的应用程序时,若调用了所述敏感操作系统应用程序编程接口,则触发一断点事件;所述移动设备暂停运行所述待测的应用程序,并将所述断点事件发送给所述监测主机;所述监测主机在接收到所述断点事件后,向所述移动设备发送监测数据请求报文;所述移动设备根据所述监测数据请求报文向所述监测主机发送被移动设备调用的所述敏感操作系统应用程序编程接口的监测数据;所述监测主机将所述监测数据进行显示。

【技术特征摘要】
1.一种安卓应用程序的动态行为监测方法,其特征在于,包括:
监测主机在待测应用程序所需调用的敏感操作系统应用程序编程接口的代码处
设置断点;
所述监测主机向移动设备发送监测命令报文;
在接收到所述监测命令报文后,移动设备在运行所述待测的应用程序时,若调用
了所述敏感操作系统应用程序编程接口,则触发一断点事件;
所述移动设备暂停运行所述待测的应用程序,并将所述断点事件发送给所述监测
主机;
所述监测主机在接收到所述断点事件后,向所述移动设备发送监测数据请求报
文;
所述移动设备根据所述监测数据请求报文向所述监测主机发送被移动设备调用
的所述敏感操作系统应用程序编程接口的监测数据;
所述监测主机将所述监测数据进行显示。
2.根据权利要求1所述的动态行为监测方法,其特征在于,所述监测数据包括
所述敏感操作系统应用程序编程接口的函数名、类名、待测的应用程序向敏感操作系
统应用程序编程接口函数发送的参数值以及调用栈信息。
3.根据权利要求1所述的动态行为监测方法,其特征在于,在监测主机在待测
应用程序所需调用的敏感操作系统应用程序编程接口的代码处设置断点之前,所述方
法还包括:
所述移动设备运行所述待测的应用程序,并启动一Dalvik虚拟机进程;所述
Dalvik虚拟机进程包括一调试线程,所述调试线程中记录有所述Dalvik虚拟机进程
的身份标识;
所述移动设备建立所述调试线程与移动设备中的设备端代理的Socket连接;
所述移动设备通过所述设备端代理,将所述身份标识发送给所述监测主机。
4.根据权利要求3所述的动态行为监测方法,其特征在于,还包括:
所述监测主机通过监测主机中的Dalvik调试管理库为所述身份标识对应的
Dalvik虚拟机进程选择一个本地TCP端口作为本地调试端口;
所述监测主机建立所述本地TCP端口与所述调试线程的数据包转发连接。
5.根据权利要求4所述的动态行为监测方法,其特征在于,在所述监测主机将
所述监测数据进行显示之后,所述方法还包括:
所述监测主机向所述移动设备发送应用程序继续运行指令;
所述移动设备在接收到所述应用程序继续运行指令后...

【专利技术属性】
技术研发人员:杨丁宁李媛汪薇薇余泉邓样辉杜云
申请(专利权)人:工业和信息化部电信研究院
类型:发明
国别省市:北京;11

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

1