Mach-O文件结构
Header:文件类型、目标架构类型信息
Load commands: 描述文件在虚拟内存中的逻辑结构、布局
Raw segment data: 定义在Load commands中的segment的原始数据
常见的 Mach-O 文件种类
- MH_OBJECT:目标文件(.o)、静态库文件(.a)
- MH_EXECUTE:可执行文件(.app)
- MH_DYLIB:动态库文件(.dylib、.framework)
- MH_DYLINKER:动态链接编辑器(/usr/lib/dyld)
- MH_DSYM: 符号表(打包生成可执行文件时附带生成的文件)
dyld 程序的作用:加载 MH_DYLIB、MH_BUNDLE、MH_EXECUTE(这一点类似 window 中的 commend 程序)
窥探 Mach-O 文件内信息的工具
otool命令:查看Mach-O文件特定部分和段的内容
file命令:查看Mach-O文件的具体类型
lipo命令
MachOView:https://github.com/gdbinit/MachOView
参考文献:
第2章 越狱iOS平台简介
![[100][100]](/2018/05/17/Mach-O文件细述/1.png)
![[100][100]](/2018/05/17/Mach-O文件细述/2.png)
![[100][100]](/2018/05/17/Mach-O文件细述/3.png)
![[100][100]](/2018/05/17/Mach-O文件细述/4.png)
![[100][100]](/2018/05/17/Mach-O文件细述/5.png)
![[100][100]](/2018/05/17/Mach-O文件细述/6.png)
![[100][100]](/2018/05/17/Mach-O文件细述/7.png)
![[100][100]](/2018/05/17/Mach-O文件细述/8.png)


