Skip to content

说说Mach O的组成结构以及每个部分的作用 #63

Open
@tbfungeek

Description

Mach O文件主要分成三大部分:

Header: 头部区域,包含了cpu类型,cpu子类型,文件类型,加载命令数,加载命令占用的空间
load Commands: 加载命令,由多个Segments command组成,每个类型有一个专门的结构体。这些加载命令用于指导如何加载对应的二进制数据段。
Data:Segments的具体数据;
每个Segments 由多个session构成。下面是几个重要的Segments

*__TEXT :代码段/只读数据段
*__DATA :数据段
*__PAGEZERO: 空指针陷阱段,用于捕获对NULL指针的引用
*__LINKEDIT: 动态链接库使用的原始数据,比如符号,字符串,重定位表条目等等, 该段可读写。
*__OBJC: 包括会被Runtime使用到的一些数据

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions