iOSRoadMap

Mach-O

Mach-O 格式全称为 Mach Object 文件格式的缩写,是 mac 上可执行文件的格式,类似于 windows 上的 PE 格式 (Portable Executable ), linux 上的 elf 格式 (Executable and Linking Format)。

在 machO 这其中包含了很多的有效的信息,包括字符串,代码段,oc 类,oc 协议等各种的信息,利用这些信息我们也做到分析代码或者程序逻辑的作用

结合可知 Mach-O 文件包含了三部分内容:

Headers

filetype 的定义有:

flags 的定义有:

Headers 能帮助校验 Mach-O 合法性和定位文件的运行环境

Load Commands

其占用的内存和加载命令的总数在 Headers 中已经指出

Load Commands 的定义:

Segment & Section

Segment:

Section:

img

__Text__Data 都有自己的 section