iOS Mach-o文件学习

2019-04-02  本文已影响0人  fordG

Mach Object mac和ios系统可执行文件的格式

分类
image.png

通过解压ipa包获取了一个和应用同名的二进制文件通过machoview查看获取到的Fat Binary类型为MH_Exectute有两种格式,一种arm_v7真机32位 arm64_all真机64位, executable文件分成三部分 header loadCommand Data


image.png

Header文件参数含义

image.png

Load Command(加载指令,告诉加载器如何处理二进制数据,处理对方分别为内核,动态链接器等。加载指令紧跟在Header后的加载命令区。Load Commands 加载指令个数及大小在Header中定义( commands 的大小总和即为 Header->sizeofcmds 字段,共有 Header->ncmds 条加载命令)

作者:龙猫六六
链接:https://www.jianshu.com/p/8f3d3f6b6af8
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。) segment command(段加载命令,需要加载到对应的进程控件) 参数含义

段数据加载并映射到内存过程:从fileo ff处加载file size大小到虚拟内存vmaddr处,并占用虚拟内存大小为vmsize,一般情况下段名_TEXT,_DATA的file size=vmsize;段名_LINKDIT的file size<vmsize(动态链接申请的内存控件要大于文件大小)

image.png

iOS堆栈信息解析(Mach-O)
mach-o
mach-o文件结构

上一篇下一篇

猜你喜欢

热点阅读