(2)Service 组件。用于在后台为用户完成指定的操作,不需与用户交互,因此没有图形 界面,通常是监控其它组件的运行或者为其它组件提供某些服务。当某一个服务需要持续执 行时,service 可以在后台执行该服务的同时处理新的进程,从而不影响用户的使用。
(3)Content providers 组件。在这个组件的帮助下,一个应用程序的数据可以被其他程 序获取,同时其他应用程序也可以将数据存入该应用程序,从而实现了多个应用程序之间的 数据共享,各种应用程序之间共享数据只能通过这个组件实现。Uri 是 ContentProvider 的访 问标识符,通过它来达到存储或读取数据的目的。
(4)Broadcast receivers 组件。该组件负责处理系统内所有的广播通知包括应用程序,我 们平时用到的消息提醒、安装软件的通知等都是这个组件的直接表现。值得一提的是,本文 接下来提到的拦截短信提醒就和它息息相关,此功能需要在 xml 配置文件中注册 Receiver 事 件,然后设置该事件的 priority 值为 1000 就可以最先收到广播。
2。1。2 安全机制
由于安卓系统是开源系统,吸引了大批用户和研究人员,然而恶意软件开发者也可以更 加方便分析安卓系统,利用其漏洞。为了更好的维护安卓系统的安全,我们需要了解安卓的 安全机制,更好的研究恶意软件的实现方式。其中在安卓系统的安全机制中,与恶意代码检 测有关的主要是沙箱机制、权限控制机制和数字签名机制这三种安全机制,接下来将重点分 析。
(1)沙箱机制是指多个程序可以并行执行,每个程序都运行在一个独立的空间中,这样可以避免执行过程中程序之间的干扰,保证了程序的独立性[11]。Dalvik 虚拟机运行在操作系 统之上,而安卓应用程序是在 Dalvik 虚拟机上运行的,因此安卓程序的每一次运行就相当于 一个进程运行在操作系统上。安卓上的这种安全机制就可以类比为操作系统上的各进程之间 的执行了,各进程即应用程序各自在划分好的空间里运行,互不干涉,互不影响,从而保证 了应用程序的安全。来~自,优^尔-论;文*网www.youerw.com +QQ752018766-
(2)权限控制机制[12][16]是在程序运行时,检测系统是否允许程序这种行为的控制。在安 卓系统中,程序要执行某个操作或者操作某个对象,都必须向系统申请对应的权限,如果没 有这个权限,则禁止该操作。应用程序在运行过程中可能用到的权限都被开发者写在了 AndroidManifest。xml 配置文件中。当应用程序安装时,先向系统请求配置文件中所申请的权 限,得到允许后才可以继续安装,否则禁止安装。
(3)数字签名机制[13]用于保护应用程序的完整性。当开发者发布应用程序时,在打包程 序过程中需要做最后的签名,签名过程按照非对称加密标准,该签名信息存放在 META-INF 文件夹中,具体过程在接下来的章节会深入研究。在安装应用程序的时候,系统会对 APK 文 件目录进行计算,生成一个哈希值,然后对比签名目录中存储的哈希值,若一致则允许安装 否则安装失败。这一机制进一步加强应用程序的安全,避免了应用程序被第三方恶意修改或 是滥用。