MachO-1

作者: 政在coding | 来源:发表于2019-08-08 00:17 被阅读0次

    这个系列主要是总结MachO文件的知识点。machO文件指的是苹果公司的可执行文件。一般在app里面使用右键->显示包内容的目录下面,有一个不带后缀名的可执行文件,这个就是这个app的macho文件来
    可以使用 file的命令查看可执行文件的类型。下面表示这个macho是64位,arm64架构的。当然也存在多个架构的,这种有多个架构的通常称为FAT文件。

    ~> file `machoPath`
    ~> Mach-O 64-bit executable arm64
    

    一般可以使用MachOView打开MachO文件,下载地址 https://github.com/gdbinit/MachOView . 下载后打开xcode工程编译好就可以用了。注意的是MachOView启动之后是没有任何界面的,只有顶部的工具栏。你也可以直接将machO拖到任务栏的machoView图标上就能打开。

    image.png

    macho一般由Header、Load Commands、Section、Other Data组成。
    Header里的字段含义如下:

    • Magic Number:MachO文件魔数:0xcafebabe是FAT、0xffeedface是ARMv7、0xfeedfacf是ARM64.
    • CPU Type、CPU Subtype:CPU版本和子版本
    • File Type:文件类型。一般的有MH_EXECUTE(可执行文件)、MH_OBJECT(目标文件)、MH_DYLIIB(动态库)
    • Number of Load Commands: 加载命令的数量
    • Size of Load Commands:加载名字的大小
    • Flags:dyld加载需要的一些标记。其中MH_PIE表示启动地址空间布局随机化(ASLR)。可以在Xcode中搜索打开mach-o/loader.h进行查看
    • Rever:保留字段

    相关文章

      网友评论

          本文标题:MachO-1

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