Android攻防三

杀死system server实际上只是将设备的dalvik子进程重启

 

SQLite提供了本地数据存储功能,webkit提供了可嵌入的wev浏览器引擎。Fretetype提供了位图和矢量字体渲染功能

 

供应商特定的程序库,即那些为某设备型号提供硬件支撑的代码库,保存在/verder/lib(或/syrtem/vender(lib))路径。其中包括对圆形显示设备、GPS接收器或蜂窝式无线电的底层支撑库等。非厂商特定的程序库则保存在/system/lib路径中,通常包括一些外部项目,如:

Libexif:一个JPEG EXIF格式的处理库

Libexpat:Expat的XML解析库

Libaudioalsa/libtinyalsa:ALSA音频库

Libbluetooth:blue2linux蓝牙库

Libxbus:D-BUS的IPC库

 

Inti程序通过执行一系列命令对用户空间环境进行初始化。代替从/etc/init.d路径执行基于运行级别的shell脚本,android基于从/inti.rc中找到的指令来执行命令

 

Property服务位于android的初始化服务中,它提供了一个持续性的(每次启动)、内存映射的、基于键值对的配置服务,属性可以通过多种方式进行读取和设置

 

Android的基本奔溃报告功能是由一个称为debugged的守护进程提供的,当调试器守护进程启动时,它将打开到android日志功能的一个连接,然后在一个抽象名字空间套接字开始监听客户端的连入。每次程序开始运行,链接器会安装信号处理程序,然后处理某些信号

 

Android调试桥(ADB)是由几个部件组成的,包括在android设备上的adbd守护进程、在属主工作站上运行的adb服务器,以及相应的abd命令行客户端

 

Volume守护进程,或称vold,是android系统负责安装和卸载各种文件系统的服务。Vold也处理android secure container(ASEC)文件的安装与卸载,当应用已存于FAT等不安全的文件系统上时,ASEC会对其进行加密处理。它们会将应用加载中进行环回(loopback)设备进行安装,通常挂载到/mnt/asel。不透明二进制块(OBB)也由vold进行安装和卸载。这些文件与应用共同打包,以存储由一个共享密钥加密的数据。而与AESC容器不同的是,对OBB的安装和卸载是由应用自身执行。Vold是以root身份执行的

 

对android的linux内核最重要的一个添加也许是binder驱动。Binder是一个基于openbinder修改版本的IPC机制。Binder作为一个架构,以客户端-服务器模型运行,允许一个进程同时调用多个“进程”进程中的方法。Binder架构将底层细节进行抽象,使得这些方法

 

分区是在设备的持久性存储内存中划分的逻辑存储单元或分块,而布局是指对分区制定次序、偏移、尺寸。分区布局是在绝大多数设备中是由引导加载程序(boot loader)来处理的,在某些特殊情况下,也可以由内核本身处理。

 

一般地,系统的NAND布局会使用一下分区布局:

引导加载模式:在手机开机时负责对硬件的初始化,引导启动android内核,并实现的引导模式开机闪屏

 

引导区:存储与android的引导映像(boot-image),包含一个linux内核(zimage)和root文件系统RAM磁盘(initrd)

 

恢复区:存储了一个最小化的android引导映像,该映像提供了一个维护功能,并作为故障保护机制

 

系统区:存储设备上被挂载至/system的整个android系统映像,这一映像中包含了android框架,程序库、系统、二进制文件,以及预装的应用

 

用户数据区:也称数据分区。在一个已引导的系统上,会被挂载至/data目录

 

缓存区:在将应用安装至SD卡的设备中会包括dalvik-cache文件夹,其中存储了dalvikvm的缓存。

 

无线电分区:存储基带映像系统的分区。此分区通常只在具有通过功能的设备上存在

 

当引导加载程序完成硬件的初始化之后,它从引导分区中将android内核和init加载到ram中。最后它将跳进内核,让内核继续启动的过程。

 

Android内核处理过程最后将挂载root文件系统,并启动最初的用户空间进程:init

 

Init进程是所有的其他用户空间进程的父进程。当它启动时,从Initrd服务挂接的root文件系统任然是读写权限。/init.rc脚本作为init的配置文件,指定了初始化操作系统用户空间组件时需要采取哪些动作,其中包括启动一些android核心服务,如通话的rild,用于VPN访问的mtpd以及andriod调试桥守护进程adbd等。其中的一个服务,Zygote,负责创建DalvikVM,然后启动第一个java组件system server。最后,其他的android框架层服务才会被启动。

 

Fastboot模式是通过usb将完整硬盘映像刷到特定分区的android协议

 

Root的过程需要涉及在系统分区上拥有一个带有恰当set-uid权限的su二进制程序,这会允许在任何需要的时候提升权限

 

通过java接口创建的sqlite数据库,共享配置文件和原始数据文件都使用0660的文件权限,这使得文件对于所属的用户ID和用户组ID都是可读写的,然而当通过原生代码或外部指令创建文件时,应用进程会继承其父进程。Zygote的文件权限为000,这意味着全局可读写。

 

需要的进程间通信(IPC)端点包括service、activity、broadcast receiver和content provider

 

攻击向量通常指的是攻击者实施行动的方式,描述了用来执行攻击的方法

 

在android系统中,缓冲协议(protoobufs)用来传输结构化数据并实现远程调用协议(RPC)

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值