CN106096394A - 一种安卓应用的广告拦截方法和装置 - Google Patents
一种安卓应用的广告拦截方法和装置 Download PDFInfo
- Publication number
- CN106096394A CN106096394A CN201610429935.0A CN201610429935A CN106096394A CN 106096394 A CN106096394 A CN 106096394A CN 201610429935 A CN201610429935 A CN 201610429935A CN 106096394 A CN106096394 A CN 106096394A
- Authority
- CN
- China
- Prior art keywords
- android
- android application
- application
- specifying
- behavior
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种安卓应用的广告拦截方法和装置。该方法包括:获取指定安卓应用的安装包并保存至指定目录;构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行;对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为。可见,在本方案中,将指定安卓应用放入沙箱中运行,通过沙箱为指定安卓应用提供一个封闭的运行环境,以实现对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为,给用户提供纯净、无干扰的安卓应用使用体验。
Description
技术领域
本发明涉及互联网技术领域,具体涉及一种安卓应用的广告拦截方法和装置。
背景技术
现有技术中大多具有安全监控功能的软件均是在指定时间对安卓应用的进行静态监控,如对安卓应用进行反编译,将反编译得到的代码结果与特征库进行比对,以判断安卓应用中是否存在恶意代码,该监控过程由于特征库的滞后而具有相当的判断失误率,且非动态的监控过程很容易被恶意安卓应用的开发者规避,因此,需要一种对安卓应用的动态行为过程进行监控的方案。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的安卓应用的广告拦截方法和装置。
依据本发明的一个方面,提供了一种安卓应用的广告拦截方法,该方法包括:
获取指定安卓应用的安装包并保存至指定目录;
构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行;
对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为。
可选地,在所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为之前,该方法进一步包括:
解析指定目录下的指定安卓应用的安装包,查看指定安卓应用的安装包中是否存在广告插件的Jar包;
是则,执行所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
可选地,在所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为之前,该方法进一步包括:
接收服务器下发的广告插件的特征数据库,该特征数据库中包括:从各广告插件样本中提取出的特征数据;
对运行在沙箱中的指定安卓应用进行扫描,判断指定安卓应用是否包含命中所述特征数据库的数据;
是则,确定指定安卓应用中包含广告插件,执行所述指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
可选地,所述对运行在沙箱中的指定安卓应用进行扫描,判断指定安卓应用是否包含命中所述特征数据库的数据包括:
对指定安卓应用的二进制文件进行扫描,将二进制文件中的固定代码/固定字符串与所述特征数据库中的特征数据进行比对,判断是否命中所述特征数据库。
可选地,所述指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为包括:
在确定指定安卓应用中包含广告插件后,拦截指定安卓应用包含的广告插件通过所述沙箱的接口发送的广告加载请求。
可选地,所述拦截指定安卓应用包含的广告插件通过所述沙箱的接口发送的广告加载请求包括:
拦截指定安卓应用包含的广告插件对应的广告插件弹窗,将拦截到的广告插件弹窗的窗口展示属性设置为不可见模式或隐藏模式。
可选地,所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为包括:
拦截指定安卓应用发送的调用Activity组件的消息,从该消息中获取View对象;
对于获取到的View对象,利用安卓反射机制获取该View对象所属的类信息和包结构,根据类信息和包结构获取相应的包路径,根据包路径中每一级目录名称判断该包路径是否属于广告插件;
是则,阻止该消息继续发送,否则,放行该消息。
可选地,所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为包括:
拦截指定安卓应用通过所述沙箱的网络访问接口发送的网络访问请求;
根据该网络访问请求中的URL地址判断该网络访问请求是否为广告加载请求;
是则,阻止该网络访问请求的继续发送。
可选地,该方法进一步包括:
预设一个或多个备用URL地址;
在确定指定安卓应用发送的网络访问请求是广告加载请求后,选择一个备用URL地址,利用该备用URL地址替换指定安卓应用发送的网络访问请求中的URL地址,将修改后的网络访问请求通过所述沙箱的网络访问接口进行发送。
可选地,该方法进一步包括:
向用户展示应用列表,将用户选择的应用作为指定安卓应用;
和/或,
向用户展示广告拦截策略列表,根据用户选择的广告拦截策略,执行所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
可选地,在所述获取指定安卓应用的安装包并保存至指定目录之前,该方法进一步包括:
通过免ROOT方式获取安卓***权限。
可选地,所述通过免ROOT方式获取安卓***权限包括:
获取补丁包;
通过加载所述补丁包对特定***漏洞进行修复,获取安卓***权限;
其中,所述补丁包中包括:所述将指定安卓应用的安装包保存至指定目录的步骤,所述构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行的步骤,以及,所述对指定安卓应用在运行过程中的行为进行监控的步骤的执行文件。
可选地,所述通过安装所述补丁包对特定***漏洞进行修复,获取安卓***权限包括:
以所述补丁包替换特定***应用,实现安卓***对所述补丁包中的执行文件的加载,使得所述补丁包中的执行文件获取安卓***权限。
可选地,所述获取指定安卓应用的安装包并保存至指定目录包括:
当指定安卓应用是已安装应用时,从安卓***的应用安装目录中查找指定安卓应用的安装包,将该安装包复制至指定目录,卸载指定安卓应用。
可选地,所述获取指定安卓应用的安装包并保存至指定目录包括:
当指定安卓应用是正在进行安装的应用时,通过注册默认安装器拦截指定安卓应用的安装广播信息,从该安装广播信息中获取指定安卓应用的安装包,将该安装包存放至指定目录。
可选地,所述构造指定安卓应用运行所需要的沙箱包括:
解析指定目录下的指定安卓应用的安装包,获取指定安卓应用的相关信息;
构造指定安卓应用运行所需的资源环境,以在指定安卓应用运行时调取相应的资源;
构造类加载器,以加载指定安卓应用的执行文件中的相应类文件;
构造主线程,以使该主线程执行指定安卓应用中的各组件的启动操作;
为指定安卓应用中的各组件分别构造一个加载安卓应用安装包对象。
可选地,构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行包括:
解析指定目录下的指定安卓应用的安装包,生成该指定安卓应用的镜像安装包;
在该镜像安装包的执行文件中注入指示调用钩子函数的代码;
修改该镜像安装包的配置文件的配置参数,用于加载指定安卓应用;
在安卓***中安装并运行该镜像安装包;
其中,所述钩子函数用于对指定安卓应用的行为进行监控。
依据本发明的另一个方面,提供了一种安卓应用的广告拦截装置,该装置包括:
获取单元,适于获取指定安卓应用的安装包并保存至指定目录;
构造单元,适于构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行;
监控单元,适于对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为。
可选地,所述监控单元,进一步适于解析指定目录下的指定安卓应用的安装包,查看指定安卓应用的安装包中是否存在广告插件的Jar包;是则,执行所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
可选地,所述监控单元,进一步适于接收服务器下发的广告插件的特征数据库,该特征数据库中包括:从各广告插件样本中提取出的特征数据;以及适于对运行在沙箱中的指定安卓应用进行扫描,判断指定安卓应用是否包含命中所述特征数据库的数据;是则,确定指定安卓应用中包含广告插件,执行所述指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
可选地,所述监控单元,适于对指定安卓应用的二进制文件进行扫描,将二进制文件中的固定代码/固定字符串与所述特征数据库中的特征数据进行比对,判断是否命中所述特征数据库。
可选地,所述监控单元,适于在确定指定安卓应用中包含广告插件后,拦截指定安卓应用包含的广告插件通过所述沙箱的接口发送的广告加载请求。
可选地,所述监控单元,适于拦截指定安卓应用包含的广告插件对应的广告插件弹窗,将拦截到的广告插件弹窗的窗口展示属性设置为不可见模式或隐藏模式。
可选地,所述监控单元,适于拦截指定安卓应用发送的调用Activity组件的消息,从该消息中获取View对象;对于获取到的View对象,利用安卓反射机制获取该View对象所属的类信息和包结构,根据类信息和包结构获取相应的包路径,根据包路径中每一级目录名称判断该包路径是否属于广告插件;是则,阻止该消息继续发送,否则,放行该消息。
可选地,所述监控单元,适于拦截指定安卓应用通过所述沙箱的网络访问接口发送的网络访问请求;根据该网络访问请求中的URL地址判断该网络访问请求是否为广告加载请求;是则,阻止该网络访问请求的继续发送。
可选地,所述监控单元,进一步适于预设一个或多个备用URL地址;在确定指定安卓应用发送的网络访问请求是广告加载请求后,选择一个备用URL地址,利用该备用URL地址替换指定安卓应用发送的网络访问请求中的URL地址,将修改后的网络访问请求通过所述沙箱的网络访问接口进行发送。
可选地,所述获取单元,进一步适于向用户展示应用列表,将用户选择的应用作为指定安卓应用;
所述监控单元,进一步适于向用户展示广告拦截策略列表,根据用户选择的广告拦截策略,执行所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
可选地,该装置进一步包括:
***权限获取单元,适于在所述获取单元执行获取指定安卓应用的安装包并保存至指定目录的步骤之前,通过免ROOT方式获取安卓***权限。
可选地,所述***权限获取单元,适于获取补丁包,通过加载所述补丁包对特定***漏洞进行修复,获取安卓***权限;
其中,所述获取单元、所述构造单元以及所述监控单元通过调用所述补丁包中的执行文件执行相应的步骤。
可选地,所述***权限获取单元,适于以所述补丁包替换特定***应用,实现安卓***对所述补丁包中的执行文件的加载,使得所述补丁包中的执行文件获取安卓***权限。
可选地,所述获取单元,适于当指定安卓应用是已安装应用时,从安卓***的应用安装目录中查找指定安卓应用的安装包,将该安装包复制至指定目录,卸载指定安卓应用。
可选地,所述获取单元,适于当指定安卓应用是正在进行安装的应用时,通过注册默认安装器拦截指定安卓应用的安装广播信息,从该安装广播信息中获取指定安卓应用的安装包,将该安装包存放至指定目录。
可选地,所述构造单元,适于解析指定目录下的指定安卓应用的安装包,获取指定安卓应用的相关信息;构造指定安卓应用运行所需的资源环境,以在指定安卓应用运行时调取相应的资源;构造类加载器,以加载指定安卓应用的执行文件中的相应类文件;构造主线程,以使该主线程执行指定安卓应用中的各组件的启动操作;为指定安卓应用中的各组件分别构造一个加载安卓应用安装包对象。
可选地,所述构造单元,适于解析指定目录下的指定安卓应用的安装包,生成该指定安卓应用的镜像安装包;在该镜像安装包的执行文件中注入指示调用钩子函数的代码;修改该镜像安装包的配置文件的配置参数,用于加载指定安卓应用;在安卓***中安装并运行该镜像安装包;
其中,所述钩子函数用于对指定安卓应用的行为进行监控。。
根据本发明的技术方案,将指定安卓应用放入沙箱中运行,通过沙箱为指定安卓应用提供一个封闭的运行环境,以实现对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为,给用户提供纯净、无干扰的安卓应用使用体验。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种安卓应用的广告拦截方法的流程图;
图2示出了根据本发明一个实施例的一种安卓应用的广告拦截装置的示意图;
图3示出了根据本发明另一个实施例的一种安卓应用的广告拦截装置的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种安卓应用的广告拦截方法的流程图。如图1所示,该方法包括:
步骤S110,获取指定安卓应用的安装包并保存至指定目录。
步骤S120,构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行。
步骤S130,对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为。
可见,图1所示的方法将指定安卓应用放入沙箱中运行,通过沙箱为指定安卓应用提供一个封闭的运行环境,以实现对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为,给用户提供纯净、无干扰的安卓应用使用体验。
对于带有广告的安卓应用来说,这些安卓应用大部分是以加入广告jar包的形式在安卓应用的安装包中加入广告插件,然后在安卓应用的安装包中的配置文件AndroidManifest.xml中声明广告service或者在程序中执行广告API,广告插件再通过网络访问请求去加载广告。
基于此原理,本方案的广告拦截策略可以分为两种策略,一种策略是先确定指定安卓应用中是否包含广告插件,如果包含,再通过监控指定安卓应用的行为,对广告插件的动作进行阻止:另一种策略是直接监控指定安卓应用的行为,判断监控到的行为是否与广告加载行为相关,是则进行阻止。
对于第一种策略,可以通过以下方式确定指定安卓应用中是否包含插件:
方式一,对于大部分包含广告插件的安卓应用来说,具有广告插件SDKJar包与应用程序本身所使用的包结构完全分布在两个互相平行且完全不重叠的包结构内这一特点,利用该特点可以做到对广告插件的精确识别。其中,SDK是指广告插件开发厂商提供给开发者的一套便于集成的代码包,在Java开发平台上代码包大多以Jar包的形式包装。
则在本发明的一个实施例中,图1所示方法在所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为之前,进一步包括:解析指定目录下的指定安卓应用的安装包,查看指定安卓应用的安装包中是否存在广告插件的Jar包;是则,执行所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
方式二,结合云端在线查询广告包特征的机制,做到针对每一款不同的广告插件都可以使用对应的特征数据进行定向拦截。在服务器端预先通过分析大量广告插件样本来提取到每一款广告插件的通用特征数据,由每一款广告插件的通用特征数据组成特征数据库。
则在本发明的一个实施例中,图1所示的方法在所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为之前,进一步包括:接收服务器下发的广告插件的特征数据库,该特征数据库中包括:从各广告插件样本中提取出的特征数据;对运行在沙箱中的指定安卓应用进行扫描,判断指定安卓应用是否包含命中所述特征数据库的数据;是则,确定指定安卓应用中包含广告插件,执行所述指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。具体地,对指定安卓应用的二进制文件进行扫描,将二进制文件中的固定代码/固定字符串与所述特征数据库中的特征数据进行比对,判断是否命中所述特征数据库。
经过上述两种方式,在确定指定安卓应用中包含广告插件后,可以执行所述指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤,具体可以包括:拦截指定安卓应用包含的广告插件通过所述沙箱的接口发送的广告加载请求。例如,拦截指定安卓应用包含的广告插件对应的广告插件弹窗,将拦截到的广告插件弹窗的窗口展示属性设置为不可见模式(invisible)或隐藏模式(gone),可以达到不影响指定安卓应用的原始布局效果,可极大地提升广告拦截效果和用户体验。
通过对广告插件的识别数据分析发现,存在超过半数的广告插件开始采用使用安卓源生的内置控件来进行广告展示,由于源生控件所属的包结构为***包,从而不能如上述第一种策略直接根据控件的包结构来直接进行识别和拦截,因此需要采用第二种策略。
对于第二种策略,可以通过以下两种方式对指定安卓应用执行广告拦截:
方式一,WebView和ImageView是两种比较特殊的广告展现方式,这两种View是安卓***自带的,广告插件只需要向里面填内容,所以仅依赖View的类信息就无法判断是广告(因为是安卓***自带类)。针对WebView形式和ImageView形式的的广告插件,本方案采用反射从已经实例化的内置插件对象中动态提取展示的数据源接口WebViewClient和点击事件处理接口ClickerListener,从而跳转得到这两类形式广告插件的类信息和包结构。其中,内置插件对象是指这些WebView和ImageView已经被实例化后的Java对象。针对WebView对象,它有一个固定的成员类型为WebViewClient,针对ImageView有一个固定的内部成员ClickListener,这两个成员都有固定的Get接口可以获取。通过Java的GetClass反射接口可以获取一个View对象所属的类信息和包结构,关键的类信息包括类名、类加载器、包名称。反射(Reflection)机制是一种Java语言的特性,指可以用通用的调用接口获取到Java对象内部的成员和方法信息。Java包路径是一个类似多级文件夹的全路径,可以根据多级目录中每一级目录的名称是否包含一些可以收集到的广告厂商名称、插件产品名称来判定这个包路径是属于某个广告插件的。
在本发明的一个实施例中,所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为包括:拦截指定安卓应用发送的调用Activity组件的消息,从该消息中获取View对象;对于获取到的View对象,利用安卓反射机制获取该View对象所属的类信息和包结构,根据类信息和包结构获取相应的包路径,根据包路径中每一级目录名称判断该包路径是否属于广告插件;是则,阻止该消息继续发送,否则,放行该消息。
方式二,如前文所述,广告插件需要发送HTTP请求来进行广告加载,而本方案为指定安卓应用构建沙箱,使得指定安卓应用在沙箱中运行,指定安卓应用所有的网络访问都要经由沙箱的网络访问API发出,因此,在本发明的一个实施例中,步骤S130中对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为包括:
步骤S131,拦截指定安卓应用通过所述沙箱的网络访问接口发送的网络访问请求。
具体地,可以在沙箱中设置钩子程序,当指定安卓应用发送网络访问请求时,在该网络访问请求到达沙箱的网络访问接口之前,利用钩子程序拦截该网络访问请求,根据该网络访问请求获知对应的网络数据流量。
步骤S132,根据该网络访问请求中的URL地址判断该网络访问请求是否为广告加载请求。
步骤S133,是则,阻止该网络访问请求的继续发送。
步骤S134,否则,放行该网络访问请求。
进一步地,在本发明的一个实施例中,图1所示的方法进一步包括:预设一个或多个备用URL地址;在确定指定安卓应用发送的网络访问请求是广告加载请求后,选择一个备用URL地址,利用该备用URL地址替换指定安卓应用发送的网络访问请求中的URL地址,将修改后的网络访问请求通过所述沙箱的网络访问接口进行发送。
可见,本实施例通过沙箱对于指定安卓应用发送的网络访问请求进行了筛选,阻止了指定安卓应用加载广告的事件。
在本发明的一个是实施例中,本方案中被放入沙箱中监控的指定安卓应用可以是由用户选择的,例如,向用户展示应用列表,将用户选择的应用作为指定安卓应用;执行图1所示方法的步骤S110-S130,在步骤S130中将对用户选择的应用进行监控,阻止该应用执行加载广告的行为。
其中,由于上文中提到了多种广告拦截策略,用户也可以对策略进行选择,例如,向用户展示广告拦截策略列表,根据用户选择的广告拦截策略,执行所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
更为具体地,在预配置文件中将用户选择的应用名写入相应的广告拦截策略对应的应用名列表;用户也可选择不使用该策略的应用(即排他性选择),在预配置文件中将用户选择的应用以外的应用名写入相应的广告拦截策略对应的应用名列表。
此外,云端也会提供一些默认配置策略。例如,云端提供了让用户一键设置的功能,支持云端配置如下策略:禁止平时只在前台使用的应用(例如浏览器、视频播放软件等应用)在后台联网,和/或,禁止无需联网的应用(例如计算器等应用)进行联网。在云端配置的策略可定时同步到客户端,存储在预配置文件中以供匹配使用。
Unix系的操作***,以安卓***为典型代表,广泛应用于各种移动通信终端中。安卓***具有相对较为严格的权限管理机制,默认状态下,非***应用的权限较低。要突破权限限制,需要将非***应用的权限提高到最高级别,也即进行ROOT授权。获得安卓***权限的非***应用即可对其他安卓应用的恶意行为进行拦截,对消耗***资源的设置项进行修改,因此,多数情况下,市面上的安全软件需要在已经获得ROOT授权的安卓移动终端上工作,才能达到其最优效果。但是,一般用户并不掌握较高的专业知识,未必能对其终端进行ROOT授权,即使进行了ROOT授权,在为安全软件开放更高权限的同时,也给了恶意程序以可乘之机。更为矛盾的是,在非ROOT条件下,一部分恶意程序能工作,而传统的安全监控软件却会失去绝对优势。因此,在非ROOT条件下解决对安卓***中的安卓应用的安全监控需求,是业内一直以来的努力方向。
为此,在本发明的一个实施例中,在步骤S110获取指定安卓应用的安装包并保存至指定目录之前,该方法进一步包括:通过免ROOT方式获取安卓***权限。可见,为了对安卓***上的***应用以及第三方应用均能实现监控,图1所示的方法在将指定安卓应用放入沙箱运行、对指定安卓应用在运行过程中的行为进行监控之前,先要获取安卓***权限,即获取安卓***中的system文件夹的操作权限;现有技术中ROOT方式是获取***目录操作权限的最基本条件,然而,与现有技术不同的是,本方案不通过ROOT方式获取***目录操作权限,可以在那些无法ROOT或者用户不愿意ROOT的安卓设备上实施对安卓应用在运行过程中的行为的监控,不修改***,无需对安卓设备进行刷机,不影响安卓设备的质保和升级,符合用户需求。
具体地,在本发明的一个实施例中,上述通过免ROOT方式获取安卓***权限的方案是:获取补丁包;通过加载所述补丁包对特定***漏洞进行修复,获取安卓***权限。本实施例通过为特定***漏洞进行修复,借修复***漏洞之机引入补丁包,将补丁包加载到安卓***中,成为***应用的一部分,以获取安卓***权限。其中提到的特定***漏洞是指:现有的安卓***目前存在的***漏洞。
上述通过加载所述补丁包对特定***漏洞进行修复,获取安卓***权限包括:在加载补丁包修复特定***漏洞的过程中,以所述补丁包替换特定***应用,实现安卓***对所述补丁包中的执行文件的加载,使得所述补丁包中的执行文件获取安卓***权限。在补丁包中的执行文件获取到安卓***权限之后,可以对安卓***中的system文件夹进行操作,即可以执行后续步骤S110-S130将指定安卓应用的安装包保存至指定目录、构造指定安卓应用运行所需要的沙箱并使得指定安卓应用在该沙箱中运行、对指定安卓应用接收信息的事件进行监控的过程;其中,所述补丁包的执行文件中包含指示执行上述步骤S110-S130的代码,则通过调用所述补丁包中的相应执行文件执行上述步骤S110-S130,步骤S110-S130的执行逻辑在上文中已有详细的描述。
以一个具体的例子来说明该实施例的实施过程:本例中特定***漏洞为安卓***中的MasterKey漏洞,利用该漏洞可以在不修改签名的情况下修改安卓***代码。基于此***原生漏洞,本方案对该***漏洞加以利用,一方面修复了该漏洞,另一方面利用该漏洞的修复过程获取了安卓***权限,一举多得,符合实际需求,保障用户使用安卓设备的信息安全。具体地,本方案在检查到安卓***中的MaterKey漏洞后将通知用户对该漏洞进行修复,修复过程中需要获取用于修复该漏洞的补丁包,安装该补丁包,以该补丁包应用替换安卓***原有的***应用Setting Storage,或者,以该补丁包在安卓***原有的***应用Setting Storage的基础上进行升级,由于***应用Setting Storage在安卓***启动时即进行加载,则本方案获取的补丁包中的执行文件也在安卓***启动时便进行加载,此时补丁包中的执行文件中的代码拥有了安卓***最高权限,可以实现System文件访问、权限管理等操作。在获得了安卓***权限之后,即可以执行获取指定安卓应用的安装包并保存至指定目录、构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行、对指定安卓应用接收信息的事件进行监控并阻止向用户提示指定安卓应用接收到信息的事件的操作。
此外,本方案中修复特定***漏洞的补丁包可以根据用户意愿随时卸载,卸载后无残留,符合用户需求。
上例中所述的特定***漏洞MasterKey漏洞以及特定***应用Setting Storage应用均为举例说明,可以根据实际需求进行选择,在此不做限制。
本发明在步骤S110中获取指定安卓应用的安装包并保存至指定目录,其中所称的指定目录,是指本发明处于文件组织、管理效率的考虑而为这些需要构建沙箱环境而提供的自定义默认目录,所有通过本方案在沙箱中运行的安卓应用的安装包,均可被移动或复制保存到该指定目录中,进一步还可以对其进行加密或隐藏,以确保其安全性;需要指出的是,这里的指定目录,还可以是安卓***中已经存在的目录,既可以是单个目录,也可以是多个目录,概括而言,是为本发明所采用的用于存放由本方案构建沙箱环境的目标安卓应用的安装包的目录。
在本发明的一个实施例中,步骤S110获取指定安卓应用的安装包并保存至指定目录包括:
方式一,当指定安卓应用是已安装应用时,从安卓***的应用安装目录中查找指定安卓应用的安装包,将该安装包复制至指定目录,卸载指定安卓应用。
例如,众所周知地,安卓***中,安卓应用的安装会涉及对如下目录的操作:data/app,安卓应用安装目录,安装时安卓***先把安卓应用的安装包(AndroidPackage,APK)复制到此data/app目录;data/dalvik-cache,将apk解压后的代码文件(.dex文件)安装到该目录下;data/data,用于建立并存放安卓应用所需的资源数据。基于上述原理可知,安卓应用的apk文件即为其安装包,在data/app目录中可以找到该安装包。因此,对于已安装的指定安卓应用而言,可以从data/app目录中复制相应的apk文件到指定目录中,然后卸载该指定安卓应用,使得后续指定安卓应用在沙箱中运行而不在沙箱外运行,避免发生冲突。
方式二,当指定安卓应用是正在进行安装的应用时,通过注册默认安装器拦截指定安卓应用的安装广播信息,从该安装广播信息中获取指定安卓应用的安装包,将该安装包存放至指定目录。
例如,对于一个准备或正在进行安装的安卓应用而言,本发明可以通过将自身注册为默认安装器的形式,获取该安卓应用的安装广播信息,从该安装广播信息中获取该安卓应用的安装包所在位置,从该位置获取该安卓应用的安装包,将该安卓应用的安装包移动存放到指定目录。
在本发明的一个实施例中,步骤S120构造指定安卓应用运行所需要的沙箱包括:解析指定目录下的指定安卓应用的安装包,获取指定安卓应用的相关信息;构造指定安卓应用运行所需的资源环境,以在指定安卓应用运行时调取相应的资源;构造类加载器,以加载指定安卓应用的执行文件中的相应类文件;构造主线程,以使该主线程执行指定安卓应用中的各组件的启动操作;为指定安卓应用中的各组件分别构造一个加载安卓应用安装包对象。
例如,步骤S120的具体执行过程可以是:
首先,解析指定目录下的指定安卓应用的安装包,获取指定安装包中包含的各组件,其中,安卓应用的组件分为四种类型,这四种类型分别为:活动(Activity)组件、广播接收者(Broadcast Receiver)组件、服务Service组件和Content Provider组件。不是所有的安卓应用都必须包含所有这四种类型的组件,有的安卓应用可能由上述一种组件或多种组件组建。各组件都需要注册才能使用,即每一个组件都需要在安卓应用的安装包的配置文件AndroidManifest.xml中进行配置。因此,指定安卓应用的安装包的配置文件AndroidManifest.xml中有列出指定安卓应用所包含的所有组件。由此可知,本实施例可通过读取指定安卓应用的安装包中的AndroidManifest.xml文件,来获取指定安卓应用的安装包中所包含的所有组件。这里需要说明的是:安卓***中的应用程序管理服务(PackageManager Service,PMS)安装安卓应用的过程实质上就是解析安卓应用的安装包中的配置文件AndroidManifest.xml的过程,并从里面得到安卓应用的相关信息,如得到安卓应用的Activity组件、Service组件、Broadcast Receiver组件和Content Provider组件等信息,有了这些信息后,通过活动管理服务(Activity Manager Service,AMS)就可以在安卓***中正常地运行该应用程序了,与上述安卓***安装安卓应用的过程类似,本方案也要先通过解析指定安卓应用的安装包来获取指定安卓应用的相关信息,具体地,可采用反射机制来获取指定安卓应用的安装包中包含的各组件;其中,本实施例中所采用的反射机制可以为Java反射机制,Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象的方法的功能即为JAVA语言的反射机制。不同语言都有其相对应的反射机制,例如,C语言和C++语言均有其对应的反射机制。
其次,指定安卓应用在被加载运行时所采用的上下文是沙箱的上下文,因此,本方案所构造的沙箱中不仅要能加载指定安卓应用中的各组件,还需构建指定安卓应用运行所需要的环境。
众所周知地,安卓应用在运行的过程中,是通过一个称为Asset Manager资源管理器来读取打包在安卓应用的安装包里面的资源文件的;安卓应用的每一个activity组件都关联一个contextlmpl对象,这个contextlmpl对象就是用来描述activity组件的运行上下文环境的;调用这个ContextImpl对象的成员函数init来执行初始化Activity组件运行上下文环境的工作,其中就包括创建用来访问安卓应用资源的Resources对象和AssetManager对象的工作。其中,ContextImpl.init函数就定义在文件frameworks/base/core/java/android/app/ContextImpl.java中;ContextImpl.init函数中的参数packageInfo指向的是一个LoadedApk对象,这个LoadedApk对象描述的是当前正在启动组件所属的Apk;用来访问应用程序资源的Resources对象是通过调用参数packageInfo所指向的是一个LoadedApk对象的成员函数getResources来创建的。由此可知,为了创建Resources对象,以提取或访问安卓应用资源,本实施例还需分别为应用中的各组件构建一个loaded APK对象。
可见,本实施例需要为指定安卓应用构造其运行所需的资源环境,以在启动各所述组件时调取相应的资源。具体的,可采用如下方式实现:对资源Resources类的构造函数中的成员变量massets进行修改,以在启动各所述组件时通过所述massets来调取相应的资源;和/或对资源管理器Asset Manager中的Asset Path函数进行修改,修改后的所述AssetPath函数指向所述安卓应用的安装包中的资源文件,以在启动各所述组件时通过所述Asset Manager调取所述Asset Path函数来获取所述资源文件中的对应资源。其中,Resources类的构造函数定义在文件frameworks/base/core/java/android/content/res/Resources.java中。因为Resources类的构造函数将参数assets所指向的一个AssetManager对象保存在成员变量mAssets中,即mAssets=assets,使得Resources类的构造函数可以通过mAssets来访问应用程序的资源。因此,本实施例可通过对资源类的构造函数中的成员变量massets进行修改,来实现通过massets调取应用程序所需的资源。其中,上述实现方式可采用反射机制来实现。当然,本实施例还可对资源管理器Asset Manager中的Asset Path函数进行修改,如通过AssetManager对象的成员函数addAssetPath来添加指定的应用程序资源文件路径(如:路径为/system/app/Music.apk)到Asset Path函数中。由于addAssetPath是隐藏API我们无法直接调用,所以只能通过反射机制来实现。
再者,本实施例还需要为指定安卓应用构造类加载器,以加载各所述组件中的相应加载类。具体的,所述构造类加载器,可采用如下方式实现:将指定安卓应用的路径添加到类加载器中的路径列表pathlist中,构造根据所述应用程序路径查找加载类的类加载器;和/或,对类加载器中的m parent成员进行修改,构造首先用parent找加载类的类加载器。构造首先用parent找加载类的类加载器的目的是:***在找一个加载类的时候,首先调的是findloadedclass()函数,紧接着就会去调用mparentfindclass()函数。如果本实施例直接将class loader构造为首先用parent找加载类的类加载器,这样***在找这个类的时候,就直接调用mparentfindclass()函数去找了,省去了调用findloadedclass()函数找类的步骤。
接着,由于一个安卓应用的运行只有一个主进程ActivityThread,ActivityThread对象描述的是当前正在运行的安卓应用进程。因此,本实施例正在沙箱中需构造出指定安卓应用的ActivityThread,以使所述Activity Thread执行指定安卓应用中的各组件的启动操作。
最后,本步骤分别为各所述组件构造一个加载指定安卓应用的安装包loaded APK对象。具体的,可采用如下方式实现:通过反射机制反射Activity Thread里的packageinfo,以分别为各所述组件构造一个加载指定安卓应用的安装包loaded APK对象。
此外,若加载的所述组件为内容提供者ContentProvider组件,则通过反射机制调用所述ContentProvider组件。
由上述例子可知,本实施例提供的技术方案通过构造指定安卓应用运行所需的运行环境,以为应用程序提供同安装后的运行环境相同的沙箱环境,使得指定安卓应用在沙箱中运行,由于指定应用程序是在沙箱内部的运行环境内运行的,通过沙箱能有效的进行权限的拦截、安卓应用的行为的监控等,在一定程度上能解决因安卓***上存在的诸多漏洞所带来的安全隐患问题。
在本发明的一个实施例中,步骤S120构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行包括:解析指定目录下的指定安卓应用的安装包,生成该指定安卓应用的镜像安装包;在该镜像安装包的执行文件中注入指示调用钩子函数的代码;修改该镜像安装包的配置文件的配置参数,用于加载指定安卓应用;在安卓***中安装并运行该镜像安装包;其中,所述钩子函数用于对指定安卓应用的行为进行监控。
众所周知,指定安卓应用的安装包为压缩文件,一种方式中,可以将指定安卓应用的安装包解压至一个临时工作目录以完成解压工作,解压后,即可对指定安卓应用的安装包中的各个文件进行解析;另一种方式中,也可以在内存中直接解析指定安卓应用的安装包。无论采取哪种方式对指定安卓应用的安装包进行解析,目的是为了获取相关参数和资源,以配置生成指定安卓应用的镜像安装包,该镜像可以是硬盘镜像也可以是内存镜像。由于指定安卓应用的安装包的构成文件中包含执行文件Classes.dex,相应地,在指定安卓应用的镜像安装包中也包含执行文件Classes.dex,本方案通过在镜像安装包中的执行文件中Classes.dex注入指示调用钩子程序的代码;且指定安卓应用的安装包的构成文件中包含配置文件Androidmanifest.xml,相应地,在指定安卓应用的镜像安装包中也包含配置文件Androidmanifest.xml,对该配置文件进行修改,使得修改后的镜像安装包适于加载指定安卓应用,具体地,本方案利用Java反射调用机制将LoadAPK与ActivityThread涉及的运行时配置信息用反射替换成指定目录中的指定安卓应用的安装包的类加载器ClassLoader与资源,实现镜像安装包对应的应用在运行时对指定安卓应用的加载。至此,本实施例所构建的指定安装应用的镜像安装包对应的应用在运行时,先加载上述指示调用钩子程序的执行文件,再加载指定安卓应用,能够实现利用钩子程序对指定安卓应用在运行中发生的行为的监控捕获,具体地,阻止指定安卓应用加载广告的事件。
本实施例中,指定安卓应用被加载到所构建的指定安卓应用的镜像安装包对应的应用的内部环境中去运行,该指定安卓应用的镜像安装包对应的应用的内部环境实质上相当于是沙箱环境,将指定安卓应用在安卓***中隔离开来,并通过在该沙箱环境中设置钩子程序来实现对指定安卓应用的行为的监控。
图2示出了根据本发明一个实施例的一种安卓应用的广告拦截装置的示意图。如图2所示,该安卓应用的广告拦截装置200包括:
获取单元210,适于获取指定安卓应用的安装包并保存至指定目录。
构造单元220,适于构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行。
监控单元230,适于对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为。
可见,图2所示的装置将指定安卓应用放入沙箱中运行,通过沙箱为指定安卓应用提供一个封闭的运行环境,以实现对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为,给用户提供纯净、无干扰的安卓应用使用体验。
在本发明的一个实施例中,所述监控单元230,进一步适于解析指定目录下的指定安卓应用的安装包,查看指定安卓应用的安装包中是否存在广告插件的Jar包;是则,执行所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
在本发明的一个实施例中,所述监控单元230,进一步适于接收服务器下发的广告插件的特征数据库,该特征数据库中包括:从各广告插件样本中提取出的特征数据;以及适于对运行在沙箱中的指定安卓应用进行扫描,判断指定安卓应用是否包含命中所述特征数据库的数据;是则,确定指定安卓应用中包含广告插件,执行所述指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
其中,所述监控单元230,适于对指定安卓应用的二进制文件进行扫描,将二进制文件中的固定代码/固定字符串与所述特征数据库中的特征数据进行比对,判断是否命中所述特征数据库。
其中,所述监控单元230,适于在确定指定安卓应用中包含广告插件后,拦截指定安卓应用包含的广告插件通过所述沙箱的接口发送的广告加载请求。
具体地,所述监控单元230,适于拦截指定安卓应用包含的广告插件对应的广告插件弹窗,将拦截到的广告插件弹窗的窗口展示属性设置为不可见模式或隐藏模式。
在本发明的一个实施例中,所述监控单元230,适于拦截指定安卓应用发送的调用Activity组件的消息,从该消息中获取View对象;对于获取到的View对象,利用安卓反射机制获取该View对象所属的类信息和包结构,根据类信息和包结构获取相应的包路径,根据包路径中每一级目录名称判断该包路径是否属于广告插件;是则,阻止该消息继续发送,否则,放行该消息。
在本发明的一个实施例中,所述监控单元230,适于拦截指定安卓应用通过所述沙箱的网络访问接口发送的网络访问请求;根据该网络访问请求中的URL地址判断该网络访问请求是否为广告加载请求;是则,阻止该网络访问请求的继续发送。
进一步地,所述监控单元230,进一步适于预设一个或多个备用URL地址;在确定指定安卓应用发送的网络访问请求是广告加载请求后,选择一个备用URL地址,利用该备用URL地址替换指定安卓应用发送的网络访问请求中的URL地址,将修改后的网络访问请求通过所述沙箱的网络访问接口进行发送。
基于上述各实施例,所述获取单元210,进一步适于向用户展示应用列表,将用户选择的应用作为指定安卓应用;和/或,所述监控单元230,进一步适于向用户展示广告拦截策略列表,根据用户选择的广告拦截策略,执行所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
在本发明的一个实施例中,所述获取单元210,适于当指定安卓应用是已安装应用时,从安卓***的应用安装目录中查找指定安卓应用的安装包,将该安装包复制至指定目录,卸载指定安卓应用。
在本发明的一个实施例中,所述获取单元210,适于当指定安卓应用是正在进行安装的应用时,通过注册默认安装器拦截指定安卓应用的安装广播信息,从该安装广播信息中获取指定安卓应用的安装包,将该安装包存放至指定目录。
在本发明的一个实施例中,所述构造单元220,适于解析指定目录下的指定安卓应用的安装包,获取指定安卓应用的相关信息;构造指定安卓应用运行所需的资源环境,以在指定安卓应用运行时调取相应的资源;构造类加载器,以加载指定安卓应用的执行文件中的相应类文件;构造主线程,以使该主线程执行指定安卓应用中的各组件的启动操作;为指定安卓应用中的各组件分别构造一个加载安卓应用安装包对象。
在本发明的一个实施例中,所述构造单元220,适于解析指定目录下的指定安卓应用的安装包,生成该指定安卓应用的镜像安装包;在该镜像安装包的执行文件中注入指示调用钩子函数的代码;修改该镜像安装包的配置文件的配置参数,用于加载指定安卓应用;在安卓***中安装并运行该镜像安装包;其中,所述钩子函数用于对指定安卓应用的行为进行监控。
图3示出了根据本发明另一个实施例的一种安卓应用的广告拦截装置的示意图。如图3所示,该安卓应用的广告拦截装置300包括:获取单元310、构造单元320、监控单元330和***权限获取单元340。
其中,获取单元310、构造单元320、监控单元330与图2所示的获取单元210、构造单元220、监控单元230对应相同的功能,相同的部分在此不再赘述。
***权限获取单元340,适于在所述获取单元执行获取指定安卓应用的安装包并保存至指定目录的步骤之前,通过免ROOT方式获取安卓***权限。
具体地,所述***权限获取单元340,适于获取补丁包,通过加载所述补丁包对特定***漏洞进行修复,获取安卓***权限。
其中,所述获取单元310、所述构造单元320以及所述监控单元330通过调用所述补丁包中的执行文件执行相应的步骤。
进一步地,所述***权限获取单元340,适于以所述补丁包替换特定***应用,实现安卓***对所述补丁包中的执行文件的加载,使得所述补丁包中的执行文件获取安卓***权限。
需要说明的是,图2-图3所示装置的各实施例与图1所示方法得到各实施例对应相同,上文已有详细说明,在此不再赘述。
综上所述,本发明的技术方案,通过免ROOT方式获取安卓***权限,在获取到安卓***权限后,构造指定安卓应用运行所需的沙箱,使得指定安卓应用在沙箱中运行,利用沙箱对指定安卓应用在运行过程中的行为进行监控。依据该方案,通过沙箱阻止指定安卓应用加载广告的事件的发生,为安卓用户提供更加纯净无扰的安卓应用使用环境,并且,通过加载补丁包而非免ROOT方式获取安卓***权限,不对安卓***进行不可逆修改,不影响安卓***的运行,不影响相应安卓设备的升级和质保,在需要时可以对获取安卓***权限的补丁包进行卸载,过程简单、可逆、无危害,符合任何程度的用户需求。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的安卓应用的广告拦截装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种安卓应用的广告拦截方法,其中,该方法包括:
获取指定安卓应用的安装包并保存至指定目录;
构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行;
对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为。
A2、如A1所述的方法,其中,在所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为之前,该方法进一步包括:
解析指定目录下的指定安卓应用的安装包,查看指定安卓应用的安装包中是否存在广告插件的Jar包;
是则,执行所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
A3、如A1所述的方法,其中,在所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为之前,该方法进一步包括:
接收服务器下发的广告插件的特征数据库,该特征数据库中包括:从各广告插件样本中提取出的特征数据;
对运行在沙箱中的指定安卓应用进行扫描,判断指定安卓应用是否包含命中所述特征数据库的数据;
是则,确定指定安卓应用中包含广告插件,执行所述指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
A4、如A3所述的方法,其中,所述对运行在沙箱中的指定安卓应用进行扫描,判断指定安卓应用是否包含命中所述特征数据库的数据包括:
对指定安卓应用的二进制文件进行扫描,将二进制文件中的固定代码/固定字符串与所述特征数据库中的特征数据进行比对,判断是否命中所述特征数据库。
A5、如A2或A3所述的方法,其中,所述指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为包括:
在确定指定安卓应用中包含广告插件后,拦截指定安卓应用包含的广告插件通过所述沙箱的接口发送的广告加载请求。
A6、如A5所述的方法,其中,所述拦截指定安卓应用包含的广告插件通过所述沙箱的接口发送的广告加载请求包括:
拦截指定安卓应用包含的广告插件对应的广告插件弹窗,将拦截到的广告插件弹窗的窗口展示属性设置为不可见模式或隐藏模式。
A7、如A1所述的方法,其中,所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为包括:
拦截指定安卓应用发送的调用Activity组件的消息,从该消息中获取View对象;
对于获取到的View对象,利用安卓反射机制获取该View对象所属的类信息和包结构,根据类信息和包结构获取相应的包路径,根据包路径中每一级目录名称判断该包路径是否属于广告插件;
是则,阻止该消息继续发送,否则,放行该消息。
A8、如A1所述的方法,其中,所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为包括:
拦截指定安卓应用通过所述沙箱的网络访问接口发送的网络访问请求;
根据该网络访问请求中的URL地址判断该网络访问请求是否为广告加载请求;
是则,阻止该网络访问请求的继续发送。
A9、如A8所述的方法,其中,该方法进一步包括:
预设一个或多个备用URL地址;
在确定指定安卓应用发送的网络访问请求是广告加载请求后,选择一个备用URL地址,利用该备用URL地址替换指定安卓应用发送的网络访问请求中的URL地址,将修改后的网络访问请求通过所述沙箱的网络访问接口进行发送。
A10、如A1-A9中任一项所述的方法,其中,该方法进一步包括:
向用户展示应用列表,将用户选择的应用作为指定安卓应用;
和/或,
向用户展示广告拦截策略列表,根据用户选择的广告拦截策略,执行所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
A11、如A1所述的方法,在所述获取指定安卓应用的安装包并保存至指定目录之前,该方法进一步包括:
通过免ROOT方式获取安卓***权限。
A12、如A11所述的方法,其中,所述通过免ROOT方式获取安卓***权限包括:
获取补丁包;
通过加载所述补丁包对特定***漏洞进行修复,获取安卓***权限;
其中,所述补丁包中包括:所述将指定安卓应用的安装包保存至指定目录的步骤,所述构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行的步骤,以及,所述对指定安卓应用在运行过程中的行为进行监控的步骤的执行文件。
A13、如A12所述的方法,其中,所述通过安装所述补丁包对特定***漏洞进行修复,获取安卓***权限包括:
以所述补丁包替换特定***应用,实现安卓***对所述补丁包中的执行文件的加载,使得所述补丁包中的执行文件获取安卓***权限。
A14、如A1所述的方法,其中,所述获取指定安卓应用的安装包并保存至指定目录包括:
当指定安卓应用是已安装应用时,从安卓***的应用安装目录中查找指定安卓应用的安装包,将该安装包复制至指定目录,卸载指定安卓应用。
A15、如A1所述的方法,其中,所述获取指定安卓应用的安装包并保存至指定目录包括:
当指定安卓应用是正在进行安装的应用时,通过注册默认安装器拦截指定安卓应用的安装广播信息,从该安装广播信息中获取指定安卓应用的安装包,将该安装包存放至指定目录。
A16、如A1所述的方法,其中,所述构造指定安卓应用运行所需要的沙箱包括:
解析指定目录下的指定安卓应用的安装包,获取指定安卓应用的相关信息;
构造指定安卓应用运行所需的资源环境,以在指定安卓应用运行时调取相应的资源;
构造类加载器,以加载指定安卓应用的执行文件中的相应类文件;
构造主线程,以使该主线程执行指定安卓应用中的各组件的启动操作;
为指定安卓应用中的各组件分别构造一个加载安卓应用安装包对象。
A17、如A1所述的方法,其中,构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行包括:
解析指定目录下的指定安卓应用的安装包,生成该指定安卓应用的镜像安装包;
在该镜像安装包的执行文件中注入指示调用钩子函数的代码;
修改该镜像安装包的配置文件的配置参数,用于加载指定安卓应用;
在安卓***中安装并运行该镜像安装包;
其中,所述钩子函数用于对指定安卓应用的行为进行监控。
本发明还公开了B18、一种安卓应用的广告拦截装置,其中,该装置包括:
获取单元,适于获取指定安卓应用的安装包并保存至指定目录;
构造单元,适于构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行;
监控单元,适于对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为。
B19、如B18所述的装置,其中,
所述监控单元,进一步适于解析指定目录下的指定安卓应用的安装包,查看指定安卓应用的安装包中是否存在广告插件的Jar包;是则,执行所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
B20、如B18所述的装置,其中,
所述监控单元,进一步适于接收服务器下发的广告插件的特征数据库,该特征数据库中包括:从各广告插件样本中提取出的特征数据;以及适于对运行在沙箱中的指定安卓应用进行扫描,判断指定安卓应用是否包含命中所述特征数据库的数据;是则,确定指定安卓应用中包含广告插件,执行所述指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
B21、如B20所述的装置,其中,
所述监控单元,适于对指定安卓应用的二进制文件进行扫描,将二进制文件中的固定代码/固定字符串与所述特征数据库中的特征数据进行比对,判断是否命中所述特征数据库。
B22、如B19或B20所述的装置,其中,
所述监控单元,适于在确定指定安卓应用中包含广告插件后,拦截指定安卓应用包含的广告插件通过所述沙箱的接口发送的广告加载请求。
B23、如B22所述的装置,其中,
所述监控单元,适于拦截指定安卓应用包含的广告插件对应的广告插件弹窗,将拦截到的广告插件弹窗的窗口展示属性设置为不可见模式或隐藏模式。
B24、如B18所述的装置,其中,
所述监控单元,适于拦截指定安卓应用发送的调用Activity组件的消息,从该消息中获取View对象;对于获取到的View对象,利用安卓反射机制获取该View对象所属的类信息和包结构,根据类信息和包结构获取相应的包路径,根据包路径中每一级目录名称判断该包路径是否属于广告插件;是则,阻止该消息继续发送,否则,放行该消息。
B25、如B18所述的装置,其中,
所述监控单元,适于拦截指定安卓应用通过所述沙箱的网络访问接口发送的网络访问请求;根据该网络访问请求中的URL地址判断该网络访问请求是否为广告加载请求;是则,阻止该网络访问请求的继续发送。
B26、如B25所述的装置,其中,
所述监控单元,进一步适于预设一个或多个备用URL地址;在确定指定安卓应用发送的网络访问请求是广告加载请求后,选择一个备用URL地址,利用该备用URL地址替换指定安卓应用发送的网络访问请求中的URL地址,将修改后的网络访问请求通过所述沙箱的网络访问接口进行发送。
B27、如B18-B26中任一项所述的装置,其中,
所述获取单元,进一步适于向用户展示应用列表,将用户选择的应用作为指定安卓应用;
所述监控单元,进一步适于向用户展示广告拦截策略列表,根据用户选择的广告拦截策略,执行所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
B28、如B18所述的装置,该装置进一步包括:
***权限获取单元,适于在所述获取单元执行获取指定安卓应用的安装包并保存至指定目录的步骤之前,通过免ROOT方式获取安卓***权限。
B29、如B28所述的装置,其中,
所述***权限获取单元,适于获取补丁包,通过加载所述补丁包对特定***漏洞进行修复,获取安卓***权限;
其中,所述获取单元、所述构造单元以及所述监控单元通过调用所述补丁包中的执行文件执行相应的步骤。
B30、如B29所述的装置,其中,
所述***权限获取单元,适于以所述补丁包替换特定***应用,实现安卓***对所述补丁包中的执行文件的加载,使得所述补丁包中的执行文件获取安卓***权限。
B31、如B18所述的装置,其中,
所述获取单元,适于当指定安卓应用是已安装应用时,从安卓***的应用安装目录中查找指定安卓应用的安装包,将该安装包复制至指定目录,卸载指定安卓应用。
B32、如B18所述的装置,其中,
所述获取单元,适于当指定安卓应用是正在进行安装的应用时,通过注册默认安装器拦截指定安卓应用的安装广播信息,从该安装广播信息中获取指定安卓应用的安装包,将该安装包存放至指定目录。
B33、如B18所述的装置,其中,
所述构造单元,适于解析指定目录下的指定安卓应用的安装包,获取指定安卓应用的相关信息;构造指定安卓应用运行所需的资源环境,以在指定安卓应用运行时调取相应的资源;构造类加载器,以加载指定安卓应用的执行文件中的相应类文件;构造主线程,以使该主线程执行指定安卓应用中的各组件的启动操作;为指定安卓应用中的各组件分别构造一个加载安卓应用安装包对象。
B34、如B18所述的装置,其中,
所述构造单元,适于解析指定目录下的指定安卓应用的安装包,生成该指定安卓应用的镜像安装包;在该镜像安装包的执行文件中注入指示调用钩子函数的代码;修改该镜像安装包的配置文件的配置参数,用于加载指定安卓应用;在安卓***中安装并运行该镜像安装包;
其中,所述钩子函数用于对指定安卓应用的行为进行监控。
Claims (10)
1.一种安卓应用的广告拦截方法,其中,该方法包括:
获取指定安卓应用的安装包并保存至指定目录;
构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行;
对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为。
2.如权利要求1所述的方法,其中,在所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为之前,该方法进一步包括:
解析指定目录下的指定安卓应用的安装包,查看指定安卓应用的安装包中是否存在广告插件的Jar包;
是则,执行所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
3.如权利要求1所述的方法,其中,在所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为之前,该方法进一步包括:
接收服务器下发的广告插件的特征数据库,该特征数据库中包括:从各广告插件样本中提取出的特征数据;
对运行在沙箱中的指定安卓应用进行扫描,判断指定安卓应用是否包含命中所述特征数据库的数据;
是则,确定指定安卓应用中包含广告插件,执行所述指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
4.如权利要求3所述的方法,其中,所述对运行在沙箱中的指定安卓应用进行扫描,判断指定安卓应用是否包含命中所述特征数据库的数据包括:
对指定安卓应用的二进制文件进行扫描,将二进制文件中的固定代码/固定字符串与所述特征数据库中的特征数据进行比对,判断是否命中所述特征数据库。
5.如权利要求2或3所述的方法,其中,所述指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为包括:
在确定指定安卓应用中包含广告插件后,拦截指定安卓应用包含的广告插件通过所述沙箱的接口发送的广告加载请求。
6.一种安卓应用的广告拦截装置,其中,该装置包括:
获取单元,适于获取指定安卓应用的安装包并保存至指定目录;
构造单元,适于构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行;
监控单元,适于对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为。
7.如权利要求6所述的装置,其中,
所述监控单元,进一步适于解析指定目录下的指定安卓应用的安装包,查看指定安卓应用的安装包中是否存在广告插件的Jar包;是则,执行所述对指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
8.如权利要求6所述的装置,其中,
所述监控单元,进一步适于接收服务器下发的广告插件的特征数据库,该特征数据库中包括:从各广告插件样本中提取出的特征数据;以及适于对运行在沙箱中的指定安卓应用进行扫描,判断指定安卓应用是否包含命中所述特征数据库的数据;是则,确定指定安卓应用中包含广告插件,执行所述指定安卓应用在运行过程中的行为进行监控,阻止指定安卓应用加载广告的行为的步骤。
9.如权利要求8所述的装置,其中,
所述监控单元,适于对指定安卓应用的二进制文件进行扫描,将二进制文件中的固定代码/固定字符串与所述特征数据库中的特征数据进行比对,判断是否命中所述特征数据库。
10.如权利要求7或8所述的装置,其中,
所述监控单元,适于在确定指定安卓应用中包含广告插件后,拦截指定安卓应用包含的广告插件通过所述沙箱的接口发送的广告加载请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610429935.0A CN106096394A (zh) | 2016-06-16 | 2016-06-16 | 一种安卓应用的广告拦截方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610429935.0A CN106096394A (zh) | 2016-06-16 | 2016-06-16 | 一种安卓应用的广告拦截方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106096394A true CN106096394A (zh) | 2016-11-09 |
Family
ID=57236053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610429935.0A Pending CN106096394A (zh) | 2016-06-16 | 2016-06-16 | 一种安卓应用的广告拦截方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106096394A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108540455A (zh) * | 2018-03-20 | 2018-09-14 | 苏州汉能网络科技有限公司 | 一种便于拒收软件广告的*** |
CN109255235A (zh) * | 2018-09-17 | 2019-01-22 | 西安电子科技大学 | 基于用户态沙箱的移动应用第三方库隔离方法 |
CN110147671A (zh) * | 2019-05-29 | 2019-08-20 | 北京奇安信科技有限公司 | 一种程序内字符串提取方法及装置 |
CN110795164A (zh) * | 2019-09-30 | 2020-02-14 | 奇安信科技集团股份有限公司 | 应用封装方法、装置及应用运行方法、装置 |
CN112560022A (zh) * | 2020-12-03 | 2021-03-26 | 支付宝(杭州)信息技术有限公司 | 一种***接口调用的检测方法及装置 |
EP4162359A4 (en) * | 2020-06-03 | 2024-06-05 | Seven Networks, LLC | API-BASED AD BLOCKING AND TRAFFIC MANAGEMENT |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130055367A1 (en) * | 2011-08-25 | 2013-02-28 | T-Mobile Usa, Inc. | Multi-Factor Profile and Security Fingerprint Analysis |
CN103093148A (zh) * | 2012-12-28 | 2013-05-08 | 广东欧珀移动通信有限公司 | 一种恶意广告的检测方法、***及设备 |
CN103226583A (zh) * | 2013-04-08 | 2013-07-31 | 北京奇虎科技有限公司 | 一种广告插件识别的方法和装置 |
CN104123120A (zh) * | 2013-04-23 | 2014-10-29 | 腾讯科技(深圳)有限公司 | 一种浏览器页面数据过滤方法、装置和*** |
CN104375861A (zh) * | 2014-11-04 | 2015-02-25 | 北京奇虎科技有限公司 | 基于安卓平台的应用程序免安装运行的方法、装置及终端 |
CN104468551A (zh) * | 2014-11-28 | 2015-03-25 | 北京奇虎科技有限公司 | 一种基于广告拦截节省流量的方法及装置 |
CN104462879A (zh) * | 2014-11-28 | 2015-03-25 | 北京奇虎科技有限公司 | 应用程序免Root运行控制方法与装置 |
-
2016
- 2016-06-16 CN CN201610429935.0A patent/CN106096394A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130055367A1 (en) * | 2011-08-25 | 2013-02-28 | T-Mobile Usa, Inc. | Multi-Factor Profile and Security Fingerprint Analysis |
CN103093148A (zh) * | 2012-12-28 | 2013-05-08 | 广东欧珀移动通信有限公司 | 一种恶意广告的检测方法、***及设备 |
CN103226583A (zh) * | 2013-04-08 | 2013-07-31 | 北京奇虎科技有限公司 | 一种广告插件识别的方法和装置 |
CN104123120A (zh) * | 2013-04-23 | 2014-10-29 | 腾讯科技(深圳)有限公司 | 一种浏览器页面数据过滤方法、装置和*** |
CN104375861A (zh) * | 2014-11-04 | 2015-02-25 | 北京奇虎科技有限公司 | 基于安卓平台的应用程序免安装运行的方法、装置及终端 |
CN104468551A (zh) * | 2014-11-28 | 2015-03-25 | 北京奇虎科技有限公司 | 一种基于广告拦截节省流量的方法及装置 |
CN104462879A (zh) * | 2014-11-28 | 2015-03-25 | 北京奇虎科技有限公司 | 应用程序免Root运行控制方法与装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108540455A (zh) * | 2018-03-20 | 2018-09-14 | 苏州汉能网络科技有限公司 | 一种便于拒收软件广告的*** |
CN109255235A (zh) * | 2018-09-17 | 2019-01-22 | 西安电子科技大学 | 基于用户态沙箱的移动应用第三方库隔离方法 |
CN110147671A (zh) * | 2019-05-29 | 2019-08-20 | 北京奇安信科技有限公司 | 一种程序内字符串提取方法及装置 |
CN110795164A (zh) * | 2019-09-30 | 2020-02-14 | 奇安信科技集团股份有限公司 | 应用封装方法、装置及应用运行方法、装置 |
CN110795164B (zh) * | 2019-09-30 | 2024-04-12 | 奇安信科技集团股份有限公司 | 应用封装方法、装置及应用运行方法、装置 |
EP4162359A4 (en) * | 2020-06-03 | 2024-06-05 | Seven Networks, LLC | API-BASED AD BLOCKING AND TRAFFIC MANAGEMENT |
CN112560022A (zh) * | 2020-12-03 | 2021-03-26 | 支付宝(杭州)信息技术有限公司 | 一种***接口调用的检测方法及装置 |
CN112560022B (zh) * | 2020-12-03 | 2024-03-12 | 支付宝(杭州)信息技术有限公司 | 一种***接口调用的检测方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106096394A (zh) | 一种安卓应用的广告拦截方法和装置 | |
CN106096395A (zh) | 一种安卓应用的保护处理方法和装置 | |
CN104536981B (zh) | 实现浏览器安全的方法、浏览器客户端和装置 | |
CN105893839B (zh) | 一种安卓应用的广播的代理处理方法和装置 | |
CN104462879B (zh) | 应用程序免Root运行控制方法与装置 | |
CN107220083B (zh) | 一种安卓***中免安装运行应用程序的方法和*** | |
CN104375861B (zh) | 基于安卓平台的应用程序免安装运行的方法、装置及终端 | |
US7287190B2 (en) | Simultaneous execution of test suites on different platforms | |
EP3166018B1 (en) | Satisfying application dependencies | |
CN104376255A (zh) | 应用程序运行控制方法与装置 | |
CN104408367A (zh) | 应用程序配置方法与装置 | |
CN104462880B (zh) | 应用程序加壳配置方法与装置 | |
CN105427096A (zh) | 支付安全沙箱实现方法及***与应用程序监控方法及*** | |
CN103761471A (zh) | 基于智能终端设备安装应用程序的方法与装置 | |
CN103839000A (zh) | 基于智能终端设备安装应用程序的方法与装置 | |
CN103870306A (zh) | 基于智能终端设备安装应用程序的方法与装置 | |
CN104731625A (zh) | 一种加载插件的方法、装置和移动终端 | |
US9173050B2 (en) | Application store system and development method using the application store system | |
CN105915546A (zh) | 一种安卓应用的流量监控方法和装置 | |
CN102981874B (zh) | 计算机处理***和注册表重定向方法 | |
CN104572197B (zh) | 一种启动项的处理方法和装置 | |
CN106778348A (zh) | 一种隔离隐私数据的方法和装置 | |
CN104036019A (zh) | 网页链接的开启方法及装置 | |
CN104573497A (zh) | 一种启动项的处理方法和装置 | |
CN106897607A (zh) | 一种应用程序监控方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161109 |
|
RJ01 | Rejection of invention patent application after publication |