Skip to content

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

Open
@tbfungeek

Description

@tbfungeek

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

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

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

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