Mach-O(Mach Object)是macOS、iOS、iPadOS存储程序和库的⽂件格式。对应系统通过应⽤⼆进制接⼝(application binary interface,缩写为ABI)来运⾏该格式的⽂件。
Mach-O格式⽤来替代BSD系统的a.out格式。Mach-O⽂件格式保存了在编译过程和链接过程中产⽣的机器代码和数据,从⽽为静态链接和动态链接的代码提供了单⼀⽂件格式。
苹果很多文件都采用Mach-O格式,最常见的就是可执行文件和动态库。当然,还有.o的目标文件、.a和.framework的静态库以及动态连接器dyld等等。
总结
-
Mach-O本质是一个二进制文件,数据按照指定方式在二进制中进行排列,dyld按照相同方式进行读取 -
Mach-O文件包含了文件配置 + 二进制代码 -
Mach-O文件可读可写,Mach-O文件在苹果签名前、签名后均可修改,但签名后修改需要进行重签名










