iOS系统分析(二)Mach-O二进制文件解析
原文出自【听云技术博客】:http://blog.tingyun.com/web/article/detail/1341 0x01 Mach-O格式简单介绍 Mach-O文件格式是 OS X 与 iOS 系统上的可执行文件格式,类似于windows的 PE 文件 与 Linux(其他 Unix like)的 ELF 文件,如果不彻底搞清楚Mach-O的格式与相关内容,那么深入研究 xnu 内核就无从谈起。 Mach-O文件的格式如下图所示: 有如下几个部分组成: 1. Header:保存了Mach-O的一些基本信息,包括了平台、文件类型、LoadCommands的个数等等。 2. LoadCommands:这一段紧跟Header,加载Mach-O文件时会使用这里的数据来确定内存的分布。 3. Data:每一个segment的具体数据都保存在这里,这里包含了具体的代码、数据等等。 0x02 FAT二进制数据 ,数据结构定义在 \<mach-o/fat.h\> 1. 第一段为magic 魔数,这里注意大小端,读出来之后需要看下是0xCAFEBABE还是 0xBEBAFECA(否...