Mach-O 介绍
常见的Mach-O文件类型
Mach-O 结构
详解
Header 头部:
- 保存了一些基本信息,包括了该文件运行的平台、文件类型、LoadCommands的个数等等
Load commands 加载命令
- 可以理解为加载命令,在加载Mach-O文件时会使用这里的数据来确定内存的分布以及相关的加载命令。比如我们的main函数的加载地址,程序所需的dyld的文件路径,以及相关依赖库的文件路径。
Data 数据:
- 这里包含了具体的代码、数据等等。
Data 段
-
__TEXT 代码段: 只读,包括函数,和只读的字符串,上图中类似__TEXT,__text的都是代码段
-
__DATA 数据段: 读写,包括可读写的全局变量等,上图类似中的__DATA,__data都是数据段
-
__LINKEDIT : __LINKEDIT 包含了方法和变量的元数据(位置,偏移量),以及代码签名等信息。