1.一种对动态加载的应用程序进行监控的方法,其特征在于,包括:
在预装的宿主应用程序内检测到启动待监控应用程序的指令后,获取所述待监控应用程序的安装包;
解析所述安装包的配置文件;
根据所述配置文件获得各组件的入口,并对各所述组件的入口注册预设的监控代码;
在所述宿主应用程序内分别加载并运行注册有监控代码的各所述组件,由所述监控代码监控各组件发出的资源访问请求。
2.如权利要求1所述的方法,其特征在于,所述预装的宿主应用程序包括免ROOT沙箱程序。
3.如权利要求1所述的方法,所述根据所述配置文件获得各组件的入口,并对各所述组件的入口注册预设的监控代码包括:
解析所述配置文件获得各组件入口;
利用反射机制获取各组件发送资源访问请求的类,并注册该类的钩子函数;
其中,所述钩子函数在预设的监控代码中实现,用于当判断所述资源访问请求为受限请求时,重定向所述资源访问请求。
4.如权利要求3所述的方法,其特征在于,所述在所述宿主应用程序内分别加载并运行注册有监控代码的各所述组件,包括:
在所述宿主应用程序内构建各组件的运行环境;
在所述运行环境下加载并运行各所述组件。
5.如权利要求4所述的方法,其特征在于,所述在所述宿主应用程序内构建各组件的运行环境包括:
构造所述待监控应用程序运行所需的资源环境,以在启动各所述组件时调取相应的资源;
构造类加载器,以加载各所述组件中的相应加载类;
构造主线程,以使所述执行各所述组件的启动操作;
分别为各所述组件构造一个加载安卓安装包对象。
6.如权利要求4所述的方法,其特征在于,所述在所述运行环境下加载并运行所述各组件进一步包括:
若加载的所述组件为活动组件、广播接收者组件或服务组件,则在应用程序管理服务进行查验之前,将所述组件修改为所述宿主应用程序中的对应组件,并在应用程序管理服务根据所述宿主应用程序中的对应组件进行查验通过后,再次加载并调用所述组件;
若加载的所述组件为内容提供者组件,则通过反射机制调用所述内容提供者组件。
7.如权利要求3所述的方法,其特征在于,监控代码监控各组件发出的资源访问请求的操作具体为:监控代码当根据预设规则判断各组件发送的资源访问请求为受限请求时,重定向所述资源访问请求至安全请求。
8.如权利要求3所述的方法,其特征在于,所述方法还包括:建立资源访问请求的重定向索引表;
监控代码监控各组件发出的资源访问请求的操作具体为:
所述监控代码缓存各组件发出的资源访问请求;
分析所述资源访问请求,并根据分析结果更新预先建立的资源访问请求的重定向索引表;
当所述监控代码根据预设规则判断各组件发送的资源访问请求为受限请求时,根据所述重定向索引表重定向所述资源访问请求。
9.一种对动态加载的应用程序进行监控的装置,其特征在于,包括:
获取安装包模块,用于在预装的宿主应用程序内检测到启动待监控应用程序的指令后,获取所述待监控应用程序的安装包;
解析配置文件模块,用于解析所述安装包的配置文件;
监控指令植入模块,用于根据所述配置文件获得各组件的入口,并对各所述组件的入口注册预设的监控代码;
监控模块,用于在所述宿主应用程序内分别加载并运行注册有监控代码的各所述组件,由所述监控代码监控各组件发出的资源访问请求。
10.如权利要求9所述的装置,所述监控指令植入模块进一步包括:
获取组件子模块,用于解析所述配置文件获得各组件入口;
注册监控代码子模块,利用反射机制获取各组件发送资源访问请求的类,并注册该类的钩子函数;
其中,所述钩子函数在预设的监控代码中实现,用于当判断所述资源访问请求为受限请求时,重定向所述资源访问请求。