iOS 逆向学习 - iOS Architecture Core OS Layer

打印 上一主题 下一主题

主题 990|帖子 990|积分 2970

一、Core OS Layer 概述


Core OS Layer 是 iOS 系统的最低层,直接与硬件交互,提供系统资源管理、设备驱动、文件系统、安全框架等底层服务。它是整个 iOS 操作系统架构的底子,其稳定性和性能直接影响系统的团体表现。
该层的组件包罗 Kernel(XNU 内核)Device Drivers(设备驱动)File System(文件系统)Security Frameworks(安全框架)

二、Core OS Layer 的核心组成部分

1. Kernel(XNU 内核)

XNU(“X is Not Unix”)是 iOS 和 macOS 操作系统的内核,作为 Darwin 操作系统的一部分,它结合了以下几个关键模块:


  • Mach

    • 提供任务管理、线程调度、内存管理(假造内存)等功能。
    • 支持进程间通讯(IPC),如 Mach 消息机制,用于系统服务之间的数据传递。
    • 提供内核扩展的模块化支持,使系统可以动态加载设备驱动和服务。

  • BSD(Berkeley Software Distribution)

    • 提供 POSIX 接口,支持 UNIX 风格的系统调用和工具。
    • 负责文件系统管理、网络协议(如 TCP/IP)支持、权限管理等功能。
    • 提供用户空间和内核空间的桥梁。

  • Device Drivers(设备驱动)

    • 通过 I/O Kit 提供对硬件的抽象层接口。
    • 包罗摄像头、Wi-Fi、蓝牙、存储设备等硬件的驱动程序。


2. Device Drivers(设备驱动)



  • 是什么:
    Device Drivers 是操作系统与硬件之间的桥梁,负责控制硬件设备的操作,提供接口供上层调用。
  • iOS 的驱动实现:

    • 使用 I/O Kit(基于 C++)来管理设备驱动程序。
    • 支持动态加载和卸载驱动程序,以进步系统灵活性。

  • 作用:

    • 控制硬件设备(如 CPU、GPU、存储设备、传感器等)。
    • 提供同一的接口,让开辟者或系统调用硬件设备。

  • 逆向开辟中的用途:

    • 分析硬件设备的驱动行为(如 USB 或 Wi-Fi 驱动)。
    • 在越狱情况下修改驱动行为,实现未授权的硬件操作。


3. Security Frameworks(安全框架)



  • 功能:

    • 提供加密、解密、证书管理、数据完整性校验等安全服务。
    • 包罗 Keychain 服务(存储敏感数据,如暗码、证书)和硬件安全模块(如 Secure Enclave)。

  • 关键特性:

    • 沙盒机制:隔离应用,防止未授权的操作和访问。
    • 数据保护:通过文件加密确保文件系统安全。
    • 代码签名:验证应用和库的完整性,防止恶意代码实行。

  • 逆向开辟中的用途:

    • 绕过代码签名检查。
    • 修改或解密数据保护文件。


4. File System(文件系统)



  • 功能:

    • 管理数据存储和访问。
    • 提供分层目录结构,支持权限控制。

  • iOS 文件系统类型:

    • APFS(Apple File System):优化了 SSD 的性能和加密支持。

  • 关键特性:

    • 应用沙盒:每个应用拥有独立的文件存储空间。
    • 文件加密:通过硬件加速实现高性能加密。

  • 逆向开辟中的用途:

    • 访问沙盒目录以提取敏感数据。
    • 绕过文件系统的加密限定。


三、Darwin OS 与 XNU Kernel 的关系


1. Darwin OS



  • 是什么:
    Darwin 是 Apple 开辟的一个开源操作系统,作为 macOS 和 iOS 的底子。它整合了开源组件(如 FreeBSD)和 Apple 的专有技术。
  • 组成:

    • XNU 内核(最底层,负责硬件管理和核心功能)。
    • 系统工具(支持 POSIX 接口和用户工具)。
    • 驱动程序和框架(如 I/O Kit)。

  • 功能:
    提供操作系统的核心折务,为上层框架(Cocoa Touch、Media 等)提供底子支持。
2. XNU Kernel



  • 是什么:
    XNU 是 Darwin 的内核,负责系统的核心功能,包罗硬件管理、任务调度、假造内存等。
  • 与 Darwin 的关系:
    XNU 是 Darwin 的核心部分,Darwin 则包含 XNU 和其他用户空间工具(如 shell、命令行工具)。

四、逆向开辟中的关联概念

1. Hook 内核行为



  • 通过越狱工具访问 XNU 内核,分析系统调用和内存分配。
  • 常用工具:Kernel Debugger (KDP)。
2. 越狱与沙盒绕过



  • 核心操作:

    • 绕过内核中的代码签名验证(AMFI)。
    • 禁用应用沙盒,访问受限资源。

3. 文件系统逆向



  • 使用工具提取沙盒外的文件。
  • 破解文件加密机制(如 APFS 数据保护)。

五、总结

Core OS Layer 是 iOS 系统的核心底层,提供了内核、设备驱动、文件系统和安全机制等底子服务:

  • XNU 内核 是核心模块,整合了 Mach 和 BSD 的功能。
  • Device Drivers 提供硬件抽象接口,支持动态加载驱动。
  • Security Frameworks 确保系统和数据的安全性。
  • File System 管理数据存储和权限。
Darwin OS 是 XNU 内核的延展,包罗了内核、驱动和用户空间工具,而 XNU 则是实现系统核心功能的关键模块。在 iOS 逆向开辟中,理解这些概念是分析系统行为和修改底层逻辑的重要底子。
六、参考资料

1、假如想了解更多有关该内核的细节,可以参考Apple的官方文档:
https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/Architecture/Architecture.html
2、假如想了解更多有关 macOS 系统中与 IOKit 相关的安全与权限提升内容,可以参考下面的文档:
https://book.hacktricks.wiki/en/macos-hardening/macos-security-and-privilege-escalation/mac-os-architecture/macos-iokit.html

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

悠扬随风

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表