CN106096396A - 一种安卓应用的信息隐藏方法和装置 - Google Patents
一种安卓应用的信息隐藏方法和装置 Download PDFInfo
- Publication number
- CN106096396A CN106096396A CN201610431576.2A CN201610431576A CN106096396A CN 106096396 A CN106096396 A CN 106096396A CN 201610431576 A CN201610431576 A CN 201610431576A CN 106096396 A CN106096396 A CN 106096396A
- Authority
- CN
- China
- Prior art keywords
- android application
- specified
- android
- information
- application
- 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
- 238000000034 method Methods 0.000 title claims abstract description 105
- 238000009434 installation Methods 0.000 claims abstract description 160
- 244000035744 Hura crepitans Species 0.000 claims abstract description 103
- 238000012544 monitoring process Methods 0.000 claims description 53
- 238000010276 construction Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 40
- 230000008569 process Effects 0.000 description 16
- 230000007246 mechanism Effects 0.000 description 12
- 230000000694 effects Effects 0.000 description 10
- 230000006399 behavior Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 238000013475 authorization Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000008439 repair process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种安卓应用的信息隐藏方法和装置,该方法包括:获取指定安卓应用的安装包并保存至指定目录;构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行;对指定安卓应用接收信息的事件进行监控,阻止向用户提示指定安卓应用接收到信息的事件。可见,在本方案中将指定安卓应用放入沙箱中运行,通过沙箱为指定安卓应用提供一个封闭的运行环境,以实现对指定安卓应用接收信息的事件进行监控,阻止向用户提示指定安卓应用接收到信息的事件,即对指定安卓应用接收到信息的事件进行隐藏,使得指定安卓应用能够在用户无察觉的情况下接收信息,这样,使得用户在指定安卓应用中的相关的信息得到保护,不会被无关的人看到。
Description
技术领域
本发明涉及互联网技术领域,具体涉及一种安卓应用的信息隐藏方法和装置。
背景技术
众所周知,当安卓系统中的即时通讯应用a接收到一条信息时,按照现有技术安卓系统将对即时通讯应用a接收到信息这一事件向用户加以提示,如在状态栏中或者在弹窗中指示“即时通讯应用a接收到一条信息”,或者通过指示灯、振动、声音等提示用户“即时通讯应用a接收到一条信息”这一事件。然而,随着移动互联网的不断发展以及智能终端的不断完善,当前装载有安卓系统的终端设备已不再仅仅具有通讯功能,它已经成为一个具有综合功能的必需品,人们利用终端设备可以进行办公、娱乐、生活等各个方面的操作,因此,终端设备的通讯功能已不再占据最高优先级了,通讯消息则可以根据人们的使用场景来选择是否进行提示。例如,在用户使用终端设备工作时,如进行视频会议期间,用户并不希望生活交友类安卓应用在收到信息时进行提示;或者,用户在将自己的终端设备借给其他人使用时,用户也不希望与自己隐私相关的安卓应用在收到信息时进行提示;等等。
如何在上述情景下对安卓应用接收信息的事件进行隐藏,是当前亟待解答的问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的安卓应用的信息隐藏方法和装置。
依据本发明的一个方面,提供了一种安卓应用的信息隐藏方法,该方法包括:
获取指定安卓应用的安装包并保存至指定目录;
构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行;
对指定安卓应用接收信息的事件进行监控,阻止向用户提示指定安卓应用接收到信息的事件。
可选地,所述阻止向用户提示指定安卓应用接收到信息的事件包括:
拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息,阻止该消息的继续发送。
可选地,所述拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息,阻止该消息的继续发送包括:
拦截指定安卓应用向安卓系统发送的通过getSystemService方法获取NotificationManager类的Intent消息,阻止该Intent消息的继续发送;
或者,
拦截指定安卓应用向安卓系统发送的通过NotificationManager类中的notify方法启动Notification类的Intent消息,阻止该Intent消息的继续发送。
可选地,所述拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息包括:
利用钩子函数拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息。
可选地,该方法进一步包括:
根据拦截到的对指定安卓应用接收到信息的事件执行提示的消息,在沙箱中对指定安卓应用接收到信息的事件进行提示。
可选地,所述指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息中包括如下一种或多种:指定安卓应用接收到的信息内容,指定安卓应用接收到的信息数量,指定安卓应用的图标;
则所述根据拦截到的对指定安卓应用接收到信息的事件执行提示的消息,在沙箱中对指定安卓应用接收到信息的事件进行提示包括:
在沙箱中显示经修改后的指定安卓应用的图标,使得该图标上显示指定安卓应用接收到的信息数量;和/或,在沙箱中显示指定安卓应用接收到的信息内容的部分或全部。
可选地,在所述获取指定安卓应用的安装包并保存至指定目录之前,该方法进一步包括:
通过免ROOT方式获取安卓系统权限。
可选地,所述通过免ROOT方式获取安卓系统权限包括:
获取补丁包;
通过加载所述补丁包对特定系统漏洞进行修复,获取安卓系统权限;
其中,所述补丁包中包括:所述将指定安卓应用的安装包保存至指定目录的步骤,所述构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行的步骤,以及,所述对指定安卓应用接收信息的事件进行监控,阻止向用户提示指定安卓应用接收到信息的事件的步骤的执行文件。
可选地,所述通过安装所述补丁包对特定系统漏洞进行修复,获取安卓系统权限包括:
以所述补丁包替换特定系统应用,实现安卓系统对所述补丁包中的执行文件的加载,使得所述补丁包中的执行文件获取安卓系统权限。
可选地,所述获取指定安卓应用的安装包并保存至指定目录包括:
当指定安卓应用是已安装应用时,从安卓系统的应用安装目录中查找指定安卓应用的安装包,将该安装包复制至指定目录,卸载指定安卓应用。
可选地,所述获取指定安卓应用的安装包并保存至指定目录包括:
当指定安卓应用是正在进行安装的应用时,通过注册默认安装器拦截指定安卓应用的安装广播信息,从该安装广播信息中获取指定安卓应用的安装包,将该安装包存放至指定目录。
可选地,所述构造指定安卓应用运行所需要的沙箱包括:
解析指定目录下的指定安卓应用的安装包,获取指定安卓应用的相关信息;
构造指定安卓应用运行所需的资源环境,以在指定安卓应用运行时调取相应的资源;
构造类加载器,以加载指定安卓应用的执行文件中的相应类文件;
构造主线程,以使该主线程执行指定安卓应用中的各组件的启动操作;
为指定安卓应用中的各组件分别构造一个加载安卓应用安装包对象。
可选地,构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行包括:
解析指定目录下的指定安卓应用的安装包,生成该指定安卓应用的镜像安装包;
在该镜像安装包的执行文件中注入指示调用钩子函数的代码;
修改该镜像安装包的配置文件的配置参数,用于加载指定安卓应用;
在安卓系统中安装并运行该镜像安装包;
其中,所述钩子函数用于对指定安卓应用的行为进行监控。
依据本发明的另一个方面,提供了一种安卓应用的信息隐藏装置,该装置包括:
获取单元,适于获取指定安卓应用的安装包并保存至指定目录;
构造单元,适于构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行;
监控单元,对指定安卓应用接收信息的事件进行监控,阻止向用户提示指定安卓应用接收到信息的事件。
可选地,所述监控单元,适于拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息,阻止该消息的继续发送。
可选地,所述监控单元,适于拦截指定安卓应用向安卓系统发送的通过getSystemService方法获取NotificationManager类的Intent消息,阻止该Intent消息的继续发送;或者,适于拦截指定安卓应用向安卓系统发送的通过NotificationManager类中的notify方法启动Notification类的Intent消息,阻止该Intent消息的继续发送。
可选地,所述监控单元,适于利用钩子函数拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息。
可选地,所述监控单元,进一步适于根据拦截到的对指定安卓应用接收到信息的事件执行提示的消息,在沙箱中对指定安卓应用接收到信息的事件进行提示。
可选地,其中,所述指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息中包括如下一种或多种:指定安卓应用接收到的信息内容,指定安卓应用接收到的信息数量,指定安卓应用的图标;
所述监控单元,适于在沙箱中显示经修改后的指定安卓应用的图标,使得该图标上显示指定安卓应用接收到的信息数量;和/或,在沙箱中显示指定安卓应用接收到的信息内容的部分或全部。
可选地,该装置进一步包括:
系统权限获取单元,适于在所述获取单元执行获取指定安卓应用的安装包并保存至指定目录的步骤之前,通过免ROOT方式获取安卓系统权限。
可选地,所述系统权限获取单元,适于获取补丁包,通过加载所述补丁包对特定系统漏洞进行修复,获取安卓系统权限;
其中,所述获取单元、所述构造单元以及所述监控单元通过调用所述补丁包中的执行文件执行相应的步骤。
可选地,所述系统权限获取单元,适于以所述补丁包替换特定系统应用,实现安卓系统对所述补丁包中的执行文件的加载,使得所述补丁包中的执行文件获取安卓系统权限。
可选地,所述获取单元,适于当指定安卓应用是已安装应用时,从安卓系统的应用安装目录中查找指定安卓应用的安装包,将该安装包复制至指定目录,卸载指定安卓应用。
可选地,所述获取单元,适于当指定安卓应用是正在进行安装的应用时,通过注册默认安装器拦截指定安卓应用的安装广播信息,从该安装广播信息中获取指定安卓应用的安装包,将该安装包存放至指定目录。
可选地,所述构造单元,适于解析指定目录下的指定安卓应用的安装包,获取指定安卓应用的相关信息;构造指定安卓应用运行所需的资源环境,以在指定安卓应用运行时调取相应的资源;构造类加载器,以加载指定安卓应用的执行文件中的相应类文件;构造主线程,以使该主线程执行指定安卓应用中的各组件的启动操作;为指定安卓应用中的各组件分别构造一个加载安卓应用安装包对象。
可选地,所述构造单元,适于解析指定目录下的指定安卓应用的安装包,生成该指定安卓应用的镜像安装包;在该镜像安装包的执行文件中注入指示调用钩子函数的代码;修改该镜像安装包的配置文件的配置参数,用于加载指定安卓应用;在安卓系统中安装并运行该镜像安装包;
其中,所述钩子函数用于对指定安卓应用的行为进行监控。
有上述可知,根据本发明的技术方案可以将指定安卓应用放入沙箱中运行,通过沙箱为指定安卓应用提供一个封闭的运行环境,以实现对指定安卓应用接收信息的事件进行监控,当监控到指定安卓应用接收到信息时,阻止向用户提示指定安卓应用接收到信息的事件,即对指定安卓应用接收到信息的事件进行隐藏,使得指定安卓应用能够在用户无察觉的情况下接收信息,这样,使得用户在指定安卓应用中的相关的信息得到保护,不会被无关的人看到。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种安卓应用的信息隐藏方法的流程图;
图2示出了根据本发明一个实施例的一种安卓应用的信息隐藏装置的示意图;
图3示出了根据本发明另一个实施例的一种安卓应用的信息隐藏装置的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种安卓应用的信息隐藏方法的流程图。如图1所示,该方法包括:
步骤S110,获取指定安卓应用的安装包并保存至指定目录。
步骤S120,构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行。
步骤S130,对指定安卓应用接收信息的事件进行监控,阻止向用户提示指定安卓应用接收到信息的事件。
可见,图1所示的方法将指定安卓应用放入沙箱中运行,通过沙箱为指定安卓应用提供一个封闭的运行环境,以实现对指定安卓应用接收信息的事件进行监控,当监控到指定安卓应用接收到信息时,阻止向用户提示指定安卓应用接收到信息的事件,即对指定安卓应用接收到信息的事件进行隐藏,使得指定安卓应用能够在用户无察觉的情况下接收信息,这样,使得用户在指定安卓应用中的相关的信息得到保护,不会被无关的人看到。
为满足背景技术中提到的需求,本方案将即时通讯应用a的安装包保存到指定目录,构造该即时通讯应用a运行所需要的沙箱,使得即时通讯应用a在该沙箱中运行,对即时通讯应用a接收信息的事件进行监控,阻止向用户提示即时通讯应用a接收到信息的事件,则当即时通讯应用a接收到一条信息时,不会通过状态栏、通知栏、弹窗、声音、振动、指示灯等形式进行提示,以实现对即时通讯应用a接收信息事件的隐藏,既不会打扰到用户本人,也不会向其他人泄漏用户的隐私信息,以保护用户的信息安全。
上述例子中以即时通讯应用a作为指定安卓应用的代表,在其他实施例中,可以对其他安卓应用接收到信息的事件进行隐藏,如,对邮箱应用接收到邮件的事件进行隐藏,对游戏应用接收到推送信息的事件进行隐藏,对即时通讯应用接收到聊天信息的事件进行隐藏,等等,本发明不对安卓应用的形式以及接收到信息的形式进行限制,可以根据实际情况进行选择。
本方案为指定安卓应用构建沙箱,使得指定安卓应用在沙箱中运行,指定安卓应用所发出的消息、所接收到的消息都要经由沙箱的接口,基于此原理,在本发明的一个实施例中,步骤S130中阻止向用户提示指定安卓应用接收到信息的事件包括:拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息,阻止该消息的继续发送。其中,可以在沙箱中设置钩子函数,利用钩子函数拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息,具体地,在指定安卓应用向安卓系统发送的消息到达沙箱的接口之前,利用钩子函数拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息。
一般情况下,当安卓应用接收到一条信息时,该安卓应用会向安卓系统发送消息,该消息的内容指示了:调用安卓系统中的相关方法对安卓应用接收到消息的事件进行某种形式的提示。具体地,所述拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息,阻止该消息的继续发送包括:拦截指定安卓应用向安卓系统发送的通过getSystemService方法获取NotificationManager类的Intent消息,阻止该Intent消息的继续发送,或者,拦截指定安卓应用向安卓系统发送的通过NotificationManager类中的notify方法启动Notification类的Intent消息,阻止该Intent消息的继续发送。其中,Intent消息是安卓系统中一种同一或不同安卓应用中的组件之间延迟运行时绑定的消息通知机制,Intent本身是一个Intent对象,是一个被动的数据结构,保存一个将要执行的操作的抽象描述,在本方案中,指定安卓应用在接收到信息后向安卓系统发送的Intent消息中描述了指示安卓系统对指定安卓应用接收到信息的事件执行提示的操作,本例中具体为调用安卓系统中的NotificationManager类或Notification类,NotificationManager是安卓系统的一个Service,必须通过调用安卓系统的getSystemService()方法来获取,是状态栏通知的管理类,负责发通知、清除通知等;Notification是具体的状态栏通知对象,可以设置图标、文字、提示声音、振动等参数。一般情况下,对指定安卓应用接收到信息的事件执行提示的操作需要先通过getSystemService()方法获取NotificationManager,再通过NotificationManager的notify(int,Notification)方法来启动Notification,指定安卓应用向安卓系统发送的Intent消息中应当对上述两个执行步骤加以描述,则上述对指定安卓应用向安卓系统发送Intent消息进行拦截实质上是对这两个执行步骤中的部分或全部的拦截,以实现阻止向用户提示指定安卓应用接收到信息的事件。
在拦截到指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息之后,图1所示的方法进一步包括:根据拦截到的对指定安卓应用接收到信息的事件执行提示的消息,在沙箱中对指定安卓应用接收到信息的事件进行提示。
其中,所述指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息中包括如下一种或多种:指定安卓应用接收到的信息内容,指定安卓应用接收到的信息数量,指定安卓应用的图标;则所述根据拦截到的对指定安卓应用接收到信息的事件执行提示的消息,在沙箱中对指定安卓应用接收到信息的事件进行提示包括:在沙箱中显示经修改后的指定安卓应用的图标,使得该图标上显示指定安卓应用接收到的信息数量;和/或,在沙箱中显示指定安卓应用接收到的信息内容的部分或全部。
例如,指定安卓应用a运行在沙箱中,当指定安卓应用a接收到一条信息x时,指定安卓应用a向安卓系统发送对指定安卓应用a接收到信息x的事件执行提示的消息,该消息中包括:信息x的内容,指定安卓应用a的图标;本方案利用沙箱拦截该消息,从该消息中提取出信息x的内容,响应于进入构造沙箱的应用的界面的事件,通过状态栏或弹窗等形式向用户展示信息x的内容的部分或全部;或者,从该消息中提取出指定安卓应用a的图标,响应于进入构造沙箱的应用的界面的事件,向用户展示经修改后的指定安卓应用a的图标,该经过修改后的指定安卓应用a的图标可以是:在原来指定安卓应用a的图标上添加角标,以提示用户指定安卓应用a接收到信息。
依据本实施例,指定安卓应用在沙箱中运行,本方案在构造沙箱的应用之外的界面阻止对指定安卓应用接收到信息的事件进行提示,而在构造沙箱的应用的界面中对指定安卓应用接收到信息的事件进行提示,将沙箱作为指定安卓应用在安卓系统中的一层保护屏蔽,具有权限的用户进入到构造沙箱的应用的界面中才能够收到相应的接收信息提示,在很多情景下都具有适用性。例如,用户将自己的手机借给其他人使用,在构造沙箱的应用以外的界面不对即时通讯应用接收到聊天信息的事件进行提示,使用手机的其他人不会接收到提示消息,而当用户再次使用自己的手机时,经过密码验证等解锁过程进入到构造沙箱的应用的界面中,会接收到关于即时通讯应用接收到聊天信息的事件的提示,如在即时通讯应用的图标的右下角标出了“New”,或弹出弹窗或通知栏展示接收到的聊天信息的摘要、发送聊天信息的联系人的图标或名称等相关信息,以保护用户的信息安全。
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中获取指定安卓应用的安装包并保存至指定目录,其中所称的指定目录,是指本发明处于文件组织、管理效率的考虑而为这些需要构建沙箱环境而提供的自定义默认目录,所有通过本方案在沙箱中运行的安卓应用的安装包,均可被移动或复制保存到该指定目录中,进一步还可以对其进行加密或隐藏,以确保其安全性;需要指出的是,这里的指定目录,还可以是安卓系统中已经存在的目录,既可以是单个目录,也可以是多个目录,概括而言,是为本发明所采用的用于存放由本方案构建沙箱环境的目标安卓应用的安装包的目录。
在本发明的一个实施例中,图1所示方法的步骤S110中获取指定安卓应用的安装包并保存至指定目录包括:
方式一,当指定安卓应用是已安装应用时,从安卓系统的应用安装目录中查找指定安卓应用的安装包,将该安装包复制至指定目录,卸载指定安卓应用。
例如,众所周知地,安卓系统中,安卓应用的安装会涉及对如下目录的操作:data/app,安卓应用安装目录,安装时安卓系统先把安卓应用的安装包(AndroidPackage,APK)复制到此data/app目录;data/dalvik-cache,将apk解压后的代码文件(.dex文件)安装到该目录下;data/data,用于建立并存放安卓应用所需的资源数据。基于上述原理可知,安卓应用的apk文件即为其安装包,在data/app目录中可以找到该安装包。因此,对于已安装的指定安卓应用而言,可以从data/app目录中复制相应的apk文件到指定目录中,然后卸载该指定安卓应用,使得后续指定安卓应用在沙箱中运行而不在沙箱外运行,避免发生冲突。
方式二,当指定安卓应用是正在进行安装的应用时,通过注册默认安装器拦截指定安卓应用的安装广播信息,从该安装广播信息中获取指定安卓应用的安装包,将该安装包存放至指定目录。
例如,对于一个准备或正在进行安装的安卓应用而言,本发明可以通过将自身注册为默认安装器的形式,获取该安卓应用的安装广播信息,从该安装广播信息中获取该安卓应用的安装包所在位置,从该位置获取该安卓应用的安装包,将该安卓应用的安装包移动存放到指定目录。
在本发明的一个实施例中,图1所示方法的步骤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中,构造根据所述应用程序路径查找加载类的类加载器;和/或,对类加载器中的mparent成员进行修改,构造首先用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,适于拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息,阻止该消息的继续发送。
其中,所述监控单元230,适于拦截指定安卓应用向安卓系统发送的通过getSystemService方法获取NotificationManager类的Intent消息,阻止该Intent消息的继续发送;或者,适于拦截指定安卓应用向安卓系统发送的通过NotificationManager类中的notify方法启动Notification类的Intent消息,阻止该Intent消息的继续发送。
具体地,所述监控单元230,适于利用钩子函数拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息。
进一步地,所述监控单元230,进一步适于根据拦截到的对指定安卓应用接收到信息的事件执行提示的消息,在沙箱中对指定安卓应用接收到信息的事件进行提示。
其中,所述指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息中包括如下一种或多种:指定安卓应用接收到的信息内容,指定安卓应用接收到的信息数量,指定安卓应用的图标。则所述监控单元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所述的方法,其中,所述阻止向用户提示指定安卓应用接收到信息的事件包括:
拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息,阻止该消息的继续发送。
A3、如A2所述的方法,其中,所述拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息,阻止该消息的继续发送包括:
拦截指定安卓应用向安卓系统发送的通过getSystemService方法获取NotificationManager类的Intent消息,阻止该Intent消息的继续发送;
或者,
拦截指定安卓应用向安卓系统发送的通过NotificationManager类中的notify方法启动Notification类的Intent消息,阻止该Intent消息的继续发送。
A4、如A2所述的方法,其中,所述拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息包括:
利用钩子函数拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息。
A5、如A2所述的方法,其中,该方法进一步包括:
根据拦截到的对指定安卓应用接收到信息的事件执行提示的消息,在沙箱中对指定安卓应用接收到信息的事件进行提示。
A6、如A5所述的方法,其中,所述指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息中包括如下一种或多种:指定安卓应用接收到的信息内容,指定安卓应用接收到的信息数量,指定安卓应用的图标;
则所述根据拦截到的对指定安卓应用接收到信息的事件执行提示的消息,在沙箱中对指定安卓应用接收到信息的事件进行提示包括:
在沙箱中显示经修改后的指定安卓应用的图标,使得该图标上显示指定安卓应用接收到的信息数量;和/或,在沙箱中显示指定安卓应用接收到的信息内容的部分或全部。
A7、如A1所述的方法,在所述获取指定安卓应用的安装包并保存至指定目录之前,该方法进一步包括:
通过免ROOT方式获取安卓系统权限。
A8、如A7所述的方法,其中,所述通过免ROOT方式获取安卓系统权限包括:
获取补丁包;
通过加载所述补丁包对特定系统漏洞进行修复,获取安卓系统权限;
其中,所述补丁包中包括:所述将指定安卓应用的安装包保存至指定目录的步骤,所述构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行的步骤,以及,所述对指定安卓应用接收信息的事件进行监控,阻止向用户提示指定安卓应用接收到信息的事件的步骤的执行文件。
A9、如A8所述的方法,其中,所述通过安装所述补丁包对特定系统漏洞进行修复,获取安卓系统权限包括:
以所述补丁包替换特定系统应用,实现安卓系统对所述补丁包中的执行文件的加载,使得所述补丁包中的执行文件获取安卓系统权限。
A10、如A1所述的方法,其中,所述获取指定安卓应用的安装包并保存至指定目录包括:
当指定安卓应用是已安装应用时,从安卓系统的应用安装目录中查找指定安卓应用的安装包,将该安装包复制至指定目录,卸载指定安卓应用。
A11、如A1所述的方法,其中,所述获取指定安卓应用的安装包并保存至指定目录包括:
当指定安卓应用是正在进行安装的应用时,通过注册默认安装器拦截指定安卓应用的安装广播信息,从该安装广播信息中获取指定安卓应用的安装包,将该安装包存放至指定目录。
A12、如A1所述的方法,其中,所述构造指定安卓应用运行所需要的沙箱包括:
解析指定目录下的指定安卓应用的安装包,获取指定安卓应用的相关信息;
构造指定安卓应用运行所需的资源环境,以在指定安卓应用运行时调取相应的资源;
构造类加载器,以加载指定安卓应用的执行文件中的相应类文件;
构造主线程,以使该主线程执行指定安卓应用中的各组件的启动操作;
为指定安卓应用中的各组件分别构造一个加载安卓应用安装包对象。
A13、如A1所述的方法,其中,构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行包括:
解析指定目录下的指定安卓应用的安装包,生成该指定安卓应用的镜像安装包;
在该镜像安装包的执行文件中注入指示调用钩子函数的代码;
修改该镜像安装包的配置文件的配置参数,用于加载指定安卓应用;
在安卓系统中安装并运行该镜像安装包;
其中,所述钩子函数用于对指定安卓应用的行为进行监控。
本发明还公开了B14、一种安卓应用的信息隐藏装置,其中,该装置包括:
获取单元,适于获取指定安卓应用的安装包并保存至指定目录;
构造单元,适于构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行;
监控单元,对指定安卓应用接收信息的事件进行监控,阻止向用户提示指定安卓应用接收到信息的事件。
B15、如B14所述的装置,其中,
所述监控单元,适于拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息,阻止该消息的继续发送。
B16、如B15所述的装置,其中,
所述监控单元,适于拦截指定安卓应用向安卓系统发送的通过getSystemService方法获取NotificationManager类的Intent消息,阻止该Intent消息的继续发送;或者,适于拦截指定安卓应用向安卓系统发送的通过NotificationManager类中的notify方法启动Notification类的Intent消息,阻止该Intent消息的继续发送。
B17、如B15所述的装置,其中,
所述监控单元,适于利用钩子函数拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息。
B18、如B15所述的装置,其中,
所述监控单元,进一步适于根据拦截到的对指定安卓应用接收到信息的事件执行提示的消息,在沙箱中对指定安卓应用接收到信息的事件进行提示。
B19、如B18所述的装置,其中,所述指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息中包括如下一种或多种:指定安卓应用接收到的信息内容,指定安卓应用接收到的信息数量,指定安卓应用的图标;
所述监控单元,适于在沙箱中显示经修改后的指定安卓应用的图标,使得该图标上显示指定安卓应用接收到的信息数量;和/或,在沙箱中显示指定安卓应用接收到的信息内容的部分或全部。
B20、如B14所述的装置,该装置进一步包括:
系统权限获取单元,适于在所述获取单元执行获取指定安卓应用的安装包并保存至指定目录的步骤之前,通过免ROOT方式获取安卓系统权限。
B21、如B20所述的装置,其中,
所述系统权限获取单元,适于获取补丁包,通过加载所述补丁包对特定系统漏洞进行修复,获取安卓系统权限;
其中,所述获取单元、所述构造单元以及所述监控单元通过调用所述补丁包中的执行文件执行相应的步骤。
B22、如B21所述的装置,其中,
所述系统权限获取单元,适于以所述补丁包替换特定系统应用,实现安卓系统对所述补丁包中的执行文件的加载,使得所述补丁包中的执行文件获取安卓系统权限。
B23、如B14所述的装置,其中,
所述获取单元,适于当指定安卓应用是已安装应用时,从安卓系统的应用安装目录中查找指定安卓应用的安装包,将该安装包复制至指定目录,卸载指定安卓应用。
B24、如B14所述的装置,其中,
所述获取单元,适于当指定安卓应用是正在进行安装的应用时,通过注册默认安装器拦截指定安卓应用的安装广播信息,从该安装广播信息中获取指定安卓应用的安装包,将该安装包存放至指定目录。
B25、如B14所述的装置,其中,
所述构造单元,适于解析指定目录下的指定安卓应用的安装包,获取指定安卓应用的相关信息;构造指定安卓应用运行所需的资源环境,以在指定安卓应用运行时调取相应的资源;构造类加载器,以加载指定安卓应用的执行文件中的相应类文件;构造主线程,以使该主线程执行指定安卓应用中的各组件的启动操作;为指定安卓应用中的各组件分别构造一个加载安卓应用安装包对象。
B26、如B14所述的装置,其中,
所述构造单元,适于解析指定目录下的指定安卓应用的安装包,生成该指定安卓应用的镜像安装包;在该镜像安装包的执行文件中注入指示调用钩子函数的代码;修改该镜像安装包的配置文件的配置参数,用于加载指定安卓应用;在安卓系统中安装并运行该镜像安装包;
其中,所述钩子函数用于对指定安卓应用的行为进行监控。
Claims (10)
1.一种安卓应用的信息隐藏方法,其中,该方法包括:
获取指定安卓应用的安装包并保存至指定目录;
构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行;
对指定安卓应用接收信息的事件进行监控,阻止向用户提示指定安卓应用接收到信息的事件。
2.如权利要求1所述的方法,其中,所述阻止向用户提示指定安卓应用接收到信息的事件包括:
拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息,阻止该消息的继续发送。
3.如权利要求2所述的方法,其中,所述拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息,阻止该消息的继续发送包括:
拦截指定安卓应用向安卓系统发送的通过getSystemService方法获取NotificationManager类的Intent消息,阻止该Intent消息的继续发送;
或者,
拦截指定安卓应用向安卓系统发送的通过NotificationManager类中的notify方法启动Notification类的Intent消息,阻止该Intent消息的继续发送。
4.如权利要求2所述的方法,其中,所述拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息包括:
利用钩子函数拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息。
5.如权利要求2所述的方法,其中,该方法进一步包括:
根据拦截到的对指定安卓应用接收到信息的事件执行提示的消息,在沙箱中对指定安卓应用接收到信息的事件进行提示。
6.一种安卓应用的信息隐藏装置,其中,该装置包括:
获取单元,适于获取指定安卓应用的安装包并保存至指定目录;
构造单元,适于构造指定安卓应用运行所需要的沙箱,使得指定安卓应用在该沙箱中运行;
监控单元,对指定安卓应用接收信息的事件进行监控,阻止向用户提示指定安卓应用接收到信息的事件。
7.如权利要求6所述的装置,其中,
所述监控单元,适于拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息,阻止该消息的继续发送。
8.如权利要求7所述的装置,其中,
所述监控单元,适于拦截指定安卓应用向安卓系统发送的通过getSystemService方法获取NotificationManager类的Intent消息,阻止该Intent消息的继续发送;或者,适于拦截指定安卓应用向安卓系统发送的通过NotificationManager类中的notify方法启动Notification类的Intent消息,阻止该Intent消息的继续发送。
9.如权利要求7所述的装置,其中,
所述监控单元,适于利用钩子函数拦截指定安卓应用向安卓系统发送的对指定安卓应用接收到信息的事件执行提示的消息。
10.如权利要求7所述的装置,其中,
所述监控单元,进一步适于根据拦截到的对指定安卓应用接收到信息的事件执行提示的消息,在沙箱中对指定安卓应用接收到信息的事件进行提示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610431576.2A CN106096396A (zh) | 2016-06-16 | 2016-06-16 | 一种安卓应用的信息隐藏方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610431576.2A CN106096396A (zh) | 2016-06-16 | 2016-06-16 | 一种安卓应用的信息隐藏方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106096396A true CN106096396A (zh) | 2016-11-09 |
Family
ID=57235313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610431576.2A Pending CN106096396A (zh) | 2016-06-16 | 2016-06-16 | 一种安卓应用的信息隐藏方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106096396A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106709327A (zh) * | 2016-12-07 | 2017-05-24 | 深圳市君格科技有限公司 | 一种应用隐藏的方法及其移动终端 |
CN106776143A (zh) * | 2016-12-27 | 2017-05-31 | 北京奇虎科技有限公司 | 一种针对终端应用程序的镜像备份的方法及终端设备 |
CN111027055A (zh) * | 2019-03-19 | 2020-04-17 | 哈尔滨安天科技集团股份有限公司 | 一种隐藏安卓系统进程的方法、装置及存储设备 |
CN114064177A (zh) * | 2021-11-16 | 2022-02-18 | 展讯通信(天津)有限公司 | 一种应用程序的隐藏方法、装置、存储介质和终端设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140090008A1 (en) * | 2012-09-27 | 2014-03-27 | Hong Li | Detecting, enforcing and controlling access privileges based on sandbox usage |
CN104375861A (zh) * | 2014-11-04 | 2015-02-25 | 北京奇虎科技有限公司 | 基于安卓平台的应用程序免安装运行的方法、装置及终端 |
CN104376255A (zh) * | 2014-11-28 | 2015-02-25 | 北京奇虎科技有限公司 | 应用程序运行控制方法与装置 |
CN104462879A (zh) * | 2014-11-28 | 2015-03-25 | 北京奇虎科技有限公司 | 应用程序免Root运行控制方法与装置 |
CN105389518A (zh) * | 2015-12-24 | 2016-03-09 | 北京奇虎科技有限公司 | 通知栏消息接管方法、装置及移动终端 |
CN105528542A (zh) * | 2014-09-28 | 2016-04-27 | 北京云巢动脉科技有限公司 | 一种基于软件免安装运行的管控方法及系统 |
-
2016
- 2016-06-16 CN CN201610431576.2A patent/CN106096396A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140090008A1 (en) * | 2012-09-27 | 2014-03-27 | Hong Li | Detecting, enforcing and controlling access privileges based on sandbox usage |
CN105528542A (zh) * | 2014-09-28 | 2016-04-27 | 北京云巢动脉科技有限公司 | 一种基于软件免安装运行的管控方法及系统 |
CN104375861A (zh) * | 2014-11-04 | 2015-02-25 | 北京奇虎科技有限公司 | 基于安卓平台的应用程序免安装运行的方法、装置及终端 |
CN104376255A (zh) * | 2014-11-28 | 2015-02-25 | 北京奇虎科技有限公司 | 应用程序运行控制方法与装置 |
CN104462879A (zh) * | 2014-11-28 | 2015-03-25 | 北京奇虎科技有限公司 | 应用程序免Root运行控制方法与装置 |
CN105389518A (zh) * | 2015-12-24 | 2016-03-09 | 北京奇虎科技有限公司 | 通知栏消息接管方法、装置及移动终端 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106709327A (zh) * | 2016-12-07 | 2017-05-24 | 深圳市君格科技有限公司 | 一种应用隐藏的方法及其移动终端 |
CN106776143A (zh) * | 2016-12-27 | 2017-05-31 | 北京奇虎科技有限公司 | 一种针对终端应用程序的镜像备份的方法及终端设备 |
CN111027055A (zh) * | 2019-03-19 | 2020-04-17 | 哈尔滨安天科技集团股份有限公司 | 一种隐藏安卓系统进程的方法、装置及存储设备 |
CN114064177A (zh) * | 2021-11-16 | 2022-02-18 | 展讯通信(天津)有限公司 | 一种应用程序的隐藏方法、装置、存储介质和终端设备 |
CN114064177B (zh) * | 2021-11-16 | 2023-09-12 | 展讯通信(天津)有限公司 | 一种应用程序的隐藏方法、装置、存储介质和终端设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106096395A (zh) | 一种安卓应用的保护处理方法和装置 | |
US8893222B2 (en) | Security system and method for the android operating system | |
CN105427096B (zh) | 支付安全沙箱实现方法及系统与应用程序监控方法及系统 | |
US20150332043A1 (en) | Application analysis system for electronic devices | |
CN104731625B (zh) | 一种加载插件的方法、装置和移动终端 | |
US8887152B1 (en) | Android application virtual environment | |
CN105335184B (zh) | 应用安装的方法和装置 | |
CN105893839B (zh) | 一种安卓应用的广播的代理处理方法和装置 | |
US20150371040A1 (en) | Method, Device And System For Processing Notification Bar Message | |
US20120137281A1 (en) | Method and apparatus for installing programs on a computer platform | |
CN104462952A (zh) | 一种禁止应用自启动的方法及装置 | |
US10176327B2 (en) | Method and device for preventing application in an operating system from being uninstalled | |
CN104375861A (zh) | 基于安卓平台的应用程序免安装运行的方法、装置及终端 | |
CN108229148B (zh) | 一种基于Android虚拟机的沙箱脱壳方法及系统 | |
Egners et al. | Messing with Android's permission model | |
CN105159771A (zh) | 处理应用间链式启动的方法及装置 | |
CN106096396A (zh) | 一种安卓应用的信息隐藏方法和装置 | |
CN104573420B (zh) | 防止进程被误杀的方法和装置 | |
WO2018133654A1 (zh) | 一种定位保护的方法和装置 | |
CN105094791A (zh) | 状态栏通知的存储方法及装置 | |
CN104461663A (zh) | 一种加载其它移动端应用的方法、装置和移动终端 | |
Zhou et al. | Demystifying diehard android apps | |
US10761863B2 (en) | Mobile application management by run-time insertion of a replacement instrumentation object into a mobile application process | |
CN105809027B (zh) | 应用程序的权限控制方法及装置 | |
Johnson et al. | Dazed droids: A longitudinal study of android inter-app vulnerabilities |
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 |