美文网首页
MachO文件

MachO文件

作者: 苍天兄弟 | 来源:发表于2018-12-20 16:05 被阅读0次

    Mach-O其实是Mach Object文件格式的缩写,它是一种用于可执行文件·目标代码·动态库的文件格式。作为a.out格式的替代,Mach-O提供了更强的扩展性。

    Mach-O的文件结构

    Mach-O文件结构

    Header:包含了该二进制文件的字节顺序、架构类型、加载指令的数量等,使得其可以快速确认一些信息,比如当前文件是用于32位还是64位,对应的处理器是什么,文件类型是什么。

    Header的数据结构

    Load commands:一张包括了区域的位置、符号表、动态符号表,引用的Framework文件就是在它的内部

    Load commands

    LC_SEGMENT_64:将文件中(32位或64位)的段映射到进程地址空间中

    LC_DYLD_INFO_ONLY:动态链接相关信息

    LC_SYMTAB:符号地址

    LC_DYSYMTAB:动态符号表地址

    LC_LOAD_DYLINKER:使用谁加载,我们使用dyld

    LC_UUID:文件的UUID

    LC_VERSION_MIN_MACOSX:支持最低的操作系统版本

    LC_SOURCE_VERSION:源代码版本

    LC_MAIN:设置主线程的入口地址和栈大小

    LC_LOAD_DYLIB:依赖库的路径,包含三方库

    LC_FUNCTION_STARTS:函数起始地址表

    LC_CODE_SIGNATURE:代码签名

    DATA:由 Segment 段和 Section 节组成。先来说 Segment 的组成,

    Segment的数据结构

    Section的数据结构

    相关文章

      网友评论

          本文标题:MachO文件

          本文链接:https://www.haomeiwen.com/subject/ynbykqtx.html