美文网首页
Mach-O初识

Mach-O初识

作者: HelloBinary | 来源:发表于2020-08-24 14:18 被阅读0次

    Mach-O是Mach object的缩写,是Mac\iOS上用于存储程序、库的标准格式
    属于Mach-O格式的文件类型有


    image.png
    • MH_OBJECT
      目标文件(.o)
      静态库文件(.a),静态库其实就是N个.o合并在一起

    • MH_EXECUTE:可执行文件
      .app/xx

    • MH_DYLIB:动态库文件
      .dylib
      .framework/xx

    • MH_DYLINKER:动态链接编辑器
      /usr/lib/dyld

    • MH_DSYM:存储着二进制文件符号信息的文件
      .dSYM/Contents/Resources/DWARF/xx(常用于分析APP的崩溃信息)

    在Xcode中查看target的Mach-O类型

    image.png

    Mach-O的基本结构

    官方描述
    https://developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual/MachOTopics/0-Introduction/introduction.html

    一个Mach-O文件包含3个主要区域

    1. Header
      文件类型、目标架构类型等

    2. Load commands
      描述文件在虚拟内存中的逻辑结构、布局

    3. Raw segment data
      在Load commands中定义的Segment的原始数据


      image.png

    dyld和Mach-O

    dyld用于加载以下类型的Mach-O文件

    • MH_EXECUTE
    • MH_DYLIB
    • MH_BUNDLE
    • APP的可执行文件、动态库都是由dyld负责加载的

    相关文章

      网友评论

          本文标题:Mach-O初识

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