ios 开发

iOS逆向_Mach-O

2023-01-19  本文已影响0人  iOS小洁

Mach-O

Mach-O是Mach object的缩写,是Mac/iOS上用于存储程序、库的标准格式

可以在xun的源码中找到Mach-O的定义,地址:https://opensource.apple.com/tarballs/xnu/

常见的Mach-O文件类型

Mach-O的基本结构

一个Mach-O文件包含3个主要区域

  1. Header : 文件类型、目标架构类型等
  2. Load commands: 描述文件在虚拟内存中的逻辑结构、布局
  3. Raw segment data :在Load commands中定义的Segment的原始数据

Mach-O Programming Topics

查看Mach-O的结构

Universal Binary(通用二进制文件)

同时适用于多种架构的二进制文件

包含了多种不同架构的独立的二进制文件

因为需要储存多种架构的代码,通用二进制文件通常比单一平台二进制的程序要

由于两种架构有共同的一些资源,所以并不会达到单一版本的两倍之多

由于执行过程中,只调用一部分代码,运行起来也不需要额外的内存

因为文件比原来的要大,也被称为“胖二进制文件”(Fat Binary)

dyld和Mach-O

dyld用于加载以下类型的Mach-O文件;

APP的可执行文件、动态库都是由dyld负责加载的

上一篇 下一篇

猜你喜欢

热点阅读