本发明专利技术提供了一种基于插装技术的安卓应用程序权限使用行为跟踪方法,该方法包括:提取未安装的应用程序安装文件中与权限相关的API的调用函数,并将所述调用函数中的API替换为预先生成的包裹函数;当所述应用程序运行时,所述包裹函数与系统中的权限行为记录服务进行通信,并将与权限相关的API调用信息发送给所述权限行为记录服务;所述权限行为记录服务记录并显示所述应用程序的权限使用行为。本发明专利技术不需要修改安卓系统源码,能够准确而高效地对权限相关的API进行跟踪,且部署方便。
【技术实现步骤摘要】
本专利技术涉及计算机
,具体涉及。
技术介绍
安卓系统提供一些敏感应用程序编程接口(Applicat1n ProgrammingInterface, API)可以使应用程序通过这些API访问系统内部存储的敏感资源,安卓系统使用权限机制保护这些敏感资源或者控制敏感操作,即应用程序需要通过系统API访问某些敏感资源或者执行某些敏感操作时,必须声明与这些系统API相对应的权限。这些权限需要声明在安卓应用程序安装文件中的AndroidManifest.xml配置文件中,该配置文件和一个字节码文件以及其他一些资源文件共同构成了安卓应用程序安装文件。当应用程序被安装时,安卓系统会检查该配置文件,提取出应用程序所声明的所有权限,并将权限列表展现给用户,让用户决定是否允许安装该应用程序。但是安卓系统并不允许用户选择性地拒绝应用程序的某些权限,也不允许用户在程序运行时动态地阻止和跟踪应用程序的权限使用行为,即应用程序一旦安装,用户将无法了解应用程序如何使用这些系统API访问自己手机的敏感资源或者进行敏感操作。这种方式带来了极大的安全隐患,不仅仅使得恶意程序可以隐蔽地完成恶意攻击,甚至使得一些正常程序也能在用户不知情的情况下完成一些危险操作,例如泄露个人隐私、后台频繁访问网络导致流量增加等等。 因此,跟踪安卓应用程序的权限使用行为是十分重要的。但现有的安卓应用程序权限使用行为跟踪方法是在安卓系统内部加入权限使用跟踪逻辑,这种方法需要修改安卓系统源码,重新编译配置安卓系统,并将整体系统镜像重新刷入到手机中。例如,专利技术名称为“一种基于权限使用行为的安卓平台应用程序动态分析系统”的专利文件,在安卓系统内部识别系统的权限检查点,跟踪程序的权限使用行为,需要修改安卓系统源代码。 这种方法难以部署到所有的设备中,因为不同的手机制造商所生产出来的手机都有其特定的硬件环境,并不存在普适的可以用于所有设备的源码编译镜像。而且,对于普通用户而言,重新编译源码和将系统镜像刷入手机中并不是容易的操作,错误的操作甚至可能导致手机不可用。
技术实现思路
针对现有技术的缺陷,本专利技术提供一种,不需要修改安卓系统源码,能够准确而高效地对权限相关的API进行跟踪,且部署方便。 本专利技术提供了一种,所述方法包括: 获取待安装的应用程序安装文件中与权限相关的API的调用函数,并将所述API的调用函数替换为预先生成的与所述API对应的包裹函数的调用函数; 当所述应用程序运行时,所述包裹函数与系统中的权限行为记录服务进行通信,并将与权限相关的API调用信息发送给所述权限行为记录服务; 所述权限行为记录服务记录并显示所述应用程序的权限使用行为。 优选地,所述提取未安装的应用程序安装文件中与权限相关的API的调用函数的步骤前,所述方法还包括: 生成与权限相关的API的包裹函数,及AP1-权限映射表。 优选地,所述生成与权限相关的API的包裹函数,及AP1-权限映射表,包括: 根据AP1-权限映射数据源生成AP1-权限映射表,以将与权限相关的API与所述权限对应起来; 根据与权限相关的API函数特征,生成包裹函数的函数头; 根据所述API函数的类别,生成所述包裹函数的内容。 优选地,所述获取未安装的应用程序安装文件中与权限相关的API的调用函数,并将所述API的调用函数替换为预先生成的与所述API对应的包裹函数的调用函数,包括: 对所述应用程序安装文件进行解压缩,提取字节码文件; 识别所述字节码文件中与权限相关的API的调用函数; 修改字节码文件,将所述调用函数中的目标API替换为对应的包裹函数; 在所述字节码文件中加入辅助功能类;其中,所述辅助功能类包括:在应用程序启动时获取全局调用环境、整理函数调用信息、提供与权限行为记录服务进行通信的功倉泛; 将修改后的字节码文件与其他资源文件重新打包和签名,生成新的应用程序安装文件。 优选地,所述当所述应用程序运行时,所述包裹函数与系统中的权限行为记录服务进行通信,并将与权限相关的API调用信息发送给所述权限行为记录服务,包括: 当插装后的应用程序运行时,获得全局调用环境; 当所述应用程序运行至与权限相关的API时,所述API对应的包裹函数基于所述全局调用环境通过所述辅助功能类使用程序间的通讯机制,将所述API调用信息发送给所述权限行为记录服务。 优选地,所述权限行为记录服务记录并显示所述应用程序的权限使用行为,包括: 所述权限行为记录服务运行两个线程,一个线程为接收器,另一个线程为记录器; 所述接收器通过程序间的通讯方式接收所述包裹函数发送的API调用信息; 所述记录器将所述API调用信息及所述API对应的权限信息记录至数据库中。 优选地,所述API调用信息包括:调用所述API的应用程序唯一标识、所述API的唯一标识及调用的时间。 优选地,所述方法还包括: 所述权限行为记录服务包括维护线程安全的队列; 所述接收器将获取的API调用信息加入所述队列尾; 所述记录器从所述队列头取出所述API调用信息。 优选地,所述记录器将所述API调用信息及所述API对应的权限信息记录至数据库中,包括: 所述记录器根据所述AP1-权限映射表,获取所调用的API的权限信息; 将所述API调用信息及所述API对应的权限信息存储至缓冲区中; 当所述缓冲区满后,将所述缓冲区中的信息写入数据库中。 优选地,所述权限行为记录服务记录并显示所述应用程序的权限使用行为,还包括: 所述权限行为记录服务将权限使用信息写入文件或以表格的形式,通过用户界面进行显示。 由上述技术方案可知,本专利技术提供一种,通过静态分析,识别出程序中与权限使用相关的API调用函数,并通过修改应用程序安装文件将权限使用行为跟踪逻辑插装到程序中,使得在运行时,被插装的程序与权限行为记录程序进行通讯,从而完成对应用程序权限使用行为的跟踪和记录。该方法不需要修改安卓系统源码,能够准确而高效地对权限相关的API进行跟踪,且方便部署,方便用户使用。 【附图说明】 为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。 图1是本专利技术一实施例提供的的示意图; 图2是本专利技术另一实施例提供的的流程示意图; 图3是本专利技术另一实施例提供的的插装流程图。 【具体实施方式】 下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。 如图1所示,图1示出了本专利技术一实施例提供的的总体示意图,主要是由静态的插装器和动态的权限行为记录服务组成,权限行为记录服务又包括接收器和记录器。插装器负责对安卓应用程序安装文件进行分析和修改,包裹函数在运行时会将调用信息发送给权限使用行为记录程序,权限行为本文档来自技高网...
【技术保护点】
一种基于插装技术的安卓应用程序权限使用行为跟踪方法,其特征在于,所述方法包括:获取待安装的应用程序安装文件中与权限相关的应用程序编程接口API的调用函数,并将所述API的调用函数替换为预先生成的与所述API对应的包裹函数的调用函数;当所述应用程序运行时,所述包裹函数与系统中的权限行为记录服务进行通信,并将与权限相关的API调用信息发送给所述权限行为记录服务;所述权限行为记录服务记录并显示所述应用程序的权限使用行为。
【技术特征摘要】
1.一种基于插装技术的安卓应用程序权限使用行为跟踪方法,其特征在于,所述方法包括: 获取待安装的应用程序安装文件中与权限相关的应用程序编程接口仙I的调用函数,并将所述仙I的调用函数替换为预先生成的与所述八?I对应的包裹函数的调用函数; 当所述应用程序运行时,所述包裹函数与系统中的权限行为记录服务进行通信,并将与权限相关的仙I调用信息发送给所述权限行为记录服务; 所述权限行为记录服务记录并显示所述应用程序的权限使用行为。2.根据权利要求1所述的方法,其特征在于,所述提取未安装的应用程序安装文件中与权限相关的仙I的调用的步骤前,所述方法还包括: 生成与权限相关的仙I的包裹函数,及仙1-权限映射表。3.根据权利要求2所述的方法,其特征在于,所述生成与权限相关的八?I的包裹函数,及八?1-权限映射表,包括: 根据八?1-权限映射数据源生成八?1-权限映射表,以将与权限相关的八?I与所述权限对应起来; 根据与权限相关的仙I函数特征,生成包裹函数的函数头; 根据所述八?I函数的类别,生成所述包裹函数的内容。4.根据权利要求2所述的方法,其特征在于,所述获取未安装的应用程序安装文件中与权限相关的仙I的调用函数,并将所述仙I的调用函数替换为预先生成的与所述八?I对应的包裹函数的调用函数,包括: 对所述应用程序安装文件进行解压缩,提取字节码文件; 识别所述字节码文件中与权限相关的仙I的调用函数; 修改字节码文件,将所述与权限相关的仙I的调用函数替换为对应的包裹函数的调用函数; 在所述字节码文件中加入辅助功能类;其中,所述辅助功能类包括:在应用程序启动时获取全局调用环境、整理函数调用信息、提供与权限行为记录服务进行通信的功能;将修改后的字节码文件与其他资源文件重新打包和签名,生成新的应用程序安装文件。5.根据权利要求4所述的...
【专利技术属性】
技术研发人员:胡事民,白小龙,
申请(专利权)人:清华大学,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。