原文出自【听云技术博客】:http://blog.tingyun.com/web/article/detail/1134
0x01 iOS体系架构
1.1 iOS 系统的整体体系架构
-
用户体验( The User Experience layer ):SpringBoard 同时支持 Spotlight。
-
应用软件开发框架(The Application Frameworks layer):Cocoa ( Cocoa Touch )。
-
核心开发框架(The Core Frameworks):图形和多媒体一类软件的开发环境,包括 核心框架,Open GL和QuickTime等。
-
Darwin:系统内核核心:包括 内核 和Unix Shell 环境。
1.2 Darwin体系
1.3 XNU概述
-
Darwin是一种类似unix的操作系统,他的核心是XNU。
-
XNU是一种混合式内核。结合了mach与BSD两种内核。
-
Mach 是微内核实现。
-
BSD 实现在Mach的上层,这一层提供的API 支持了POSIX标准模型。在XNU中主要实现了一些高级的API与模块。
1.3.1 Mach 微内核简介
-
在XNU中主要完成以下几个功能:
-
进程与线程的抽象
-
虚拟内存管理
-
任务调度
-
进程间通信
1.3.2 BSD 内核简介
-
BSD 实现在Mach的上层,这一层提供的API 支持了POSIX标准模型。在XNU中主要实现了一些高级的API与模块。
-
UNIX 进程模型;
-
POSIX 线程模型即pthread,以及相关的同步功能;
-
UNIX的用户与组管理;
-
网络协议栈(BSD Socket API),符合POSIX 模型;
-
文件系统/设备系统;
1.3.3 libKern
-
实现了一个C+ +的子集(以库的形式为支持C+ +提供了运行时),为I/O kit 提供基础设施;
1.3.4 I/O kit
-
I/O kit 是XNU 不同于其他操作系统的设备驱动框架。IOKit是一个面向对象的驱动模型框架,它是早期DriverKit的一个翻版,Driver Kit是使用Objective-C写的,而IOKit是一个C+ +的驱动架构,它在DriverKit的基础上做了很大的改进,比如IOKit可以写在用户空间跑的驱动(虽然大多仍是跑在内核空间上的),因而驱动挂了而系统不会挂。另外IOKit考虑到了计算机发展的趋势,所以在电源管理、即插即用、动态加载上做得更好。
0x02 iOS安全机制
2.1 代码签名
在iOS开发者使用的机器上应该已经有一个证书,一个公钥,以及一个私钥。这些事代码签名机制的核心。像SSL一样,代码签名也依赖于采用X.509 标准的公开密钥加密体系。无论是用户还是开发者都不能改变应用开启策略,你必须有一个开发者帐号或者应用发布证书才能让应用运行在 iOS 系统上。
2.2(强制访问控制(Mandatory Access Control)
iOS的entitlement 机制的基础。简称MAC,用于将系统中的信息分密级和类进行管理,以保证每个用户只能访问那些被标明可以由他访问的信息的一种访问约束机制。通俗的说,在MAC下,用户与文件都被标记了固定的安全属性(如安全级别,访问权限等),在每次访问发生时,系统检测安全属性以便确定一个用户是否有权访问该文件)。
2.3 沙盒机制(sandbox)
沙盒是一种安全机制,为运行中的程序提供隔离环境。沙盒在启动的时候可以设置运行的程序是否可以访问网络、文件、目录等。
参考 《深入解析Mac OS X & iOS操作系统》
相关推荐
《OS X与iOS内核编程》是一本深入探讨苹果操作系统内核开发的书籍,它涵盖了OS X和iOS这两个苹果主流操作系统的核心技术。...通过学习,读者不仅可以提升技术水平,还能更好地理解OS X和iOS系统底层的工作机制。
为了自己动手发现iOS内核缺陷,首先需要具备一定的逆向工程、编程和系统分析能力。以下是一些关键步骤: 1. **环境准备**:获取iOS的固件镜像,并安装相应的开发工具,如Xcode,以便使用iOS SDK和LLDB调试器。此外...
《OS X与iOS内核编程》是一本深入探讨苹果操作系统内核的专业书籍,主要针对Mac OS X(现称为macOS)和iOS系统。在苹果的设备上,无论是台式机、笔记本还是移动设备,其核心操作系统都基于Darwin,一个开放源代码的...
《OS X与iOS内核编程》是一本深入探讨苹果操作系统内核的专业书籍,涵盖了OS X和iOS两大平台。这本书旨在帮助开发者和系统工程师理解这两款操作系统的核心机制,从而能够更高效地进行系统优化、安全性和性能提升等...
- **调试流程**:调试iOS内核涉及多个步骤,包括但不限于分析系统调用、理解内核数据结构以及检测潜在的漏洞。 #### 五、内核漏洞利用技术 文档深入探讨了如何利用内核漏洞进行攻击,具体包括: 1. **栈溢出**: ...
《苹果OSX和iOS内核编程》不仅是一本理论丰富的教科书,更是一本实践指南,旨在帮助开发者掌握苹果内核编程的关键技能。通过深入理解这些知识点,开发者可以更好地开发出高效、稳定且安全的内核级应用程序和驱动程序...
#### 三、Mac OS X和iOS系统 第二章将深入探讨Mac OS X和iOS这两个操作系统的特性,包括它们的内核架构(XNU内核)、文件系统、安全机制等方面。此外,还会讨论这两种操作系统之间的异同,以及在开发过程中需要注意...
《深入解析MacOSX+iOS操作系统》是一本全面探讨苹果公司两大操作系统——MacOSX和iOS的权威指南。这本书共计700多页,旨在为读者提供详尽且深入的系统知识,帮助读者理解这两个平台的内在工作原理、设计思路以及它们...
本书《OS X and iOS Kernel Programming》是一本专注于这一主题的专业指南,提供了详细的操作系统和内核架构知识,并结合了实践性强的方法,旨在帮助读者编写有效的内核级代码。 首先,书中介绍了基础概念,如内存...
尽管iBoot源码的公开对研究和学习极具价值,但其复杂性和专业性也意味着需要深厚的编程和iOS系统知识才能完全理解。此外,由于Apple的保密政策,部分关键代码可能被混淆或加密,增加了分析的难度。 总结,iBoot源码...
在OS X和iOS系统中,内核扮演着核心角色,它是操作系统的心脏,负责管理硬件资源,如处理器时间、内存分配,以及提供进程间通信等关键服务。本书首先介绍了内核的基础知识,包括操作系统内核的概念、功能和设计原则...
《高清版 MacOS and iOS Internals》是一本深入探讨苹果操作系统内部结构和技术原理的专业书籍。本书由Jonathan Levin撰写,并由John Wiley & Sons, Inc.出版。该书不仅对MacOS X和iOS的技术架构进行了全面的解析,...
操作系统的设计涉及到模块化、层次结构、微内核、面向对象等原则,这些原则影响着操作系统的可维护性、可扩展性和性能。 六、现代操作系统的发展趋势 1. 云计算:操作系统在云环境中的角色越来越重要,如虚拟化技术...
《OS X和iOS内核编程》是一本深入探讨Apple操作系统内核开发的书籍,涵盖了从基本概念到高级技术的广泛内容。在OS X和iOS这两个苹果公司的主要操作系统中,内核是系统的基石,负责管理硬件资源,提供系统服务,并...
在IT行业中,iOS和Linux内核之间的交互是一个重要的知识点。iOS是由苹果公司开发的操作系统,主要用于其移动设备,如iPhone和iPad。而Linux内核是开源的操作系统核心,被广泛用于各种设备,包括服务器、嵌入式设备和...
android系统下,封装X5内核和系统默认内核,避免在定制化Webview的时候一套代码写两遍的问题,可以通过配置一键切换浏览器内核 软件开发设计:PHP、QT、应用软件开发、系统软件开发、移动应用开发、网站开发C++、...
根据提供的文件信息,本书《OS X 和 iOS Kernel Programming》由 Ole Henry Halvorsen 和 Douglas Clarke 著作,旨在帮助读者掌握 OS X 和 iOS 内核编程的基础知识和技术细节。接下来,我们将从书中的各个章节提取...
通过对iOS系统分配器的深入研究,开发者可以更好地管理内存使用,减少因内存管理不当而导致的安全漏洞。 #### 理解TCMalloc TCMalloc(Thread-Caching Malloc)是一种高性能的内存分配器,被广泛应用于Google的...