美文网首页
iOS Mach-o文件学习

iOS Mach-o文件学习

作者: fordG | 来源:发表于2019-04-02 10:06 被阅读0次

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

分类
  • Executable应用程序的可执行文件


    image.png
    image.png
    image.png
image.png

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


image.png

Header文件参数含义

  • Magic Number: 魔数 设备cpu位数
  • cputype: cpusubtype cpu类型自类型
  • filetype: Mach-o文件类型
  • number of load commands 缩写ncmds 加载器加载的命令数量
  • Size of load commands 所有加载的命令的大小
  • Flags 动态链接器的标志(字段表示文件标志,它是一个含有一组位标志的整数,指明了Mach-O文件的一些标志信息)具体参考这里
image.png

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

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

  • cmd: 指令类型
  • cmdsize: 之类加载的大小
  • segname image.png
  • vm address: 段的虚拟内存地址起始位置
  • vm size: 段的虚拟内存大小
  • file offset 段在文件中的偏移量
  • file size 段在文件中的大小
  • maximun vm protection: 段页面所需要的最高内存保护
  • initial vm protection: 段初始化的内存保护
  • number of sections: 段中包含的section的数量

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

image.png

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

相关文章

  • iOS程序的内存布局

    iOS程序安装之后,是以Mach-o文件的格式保存在iOS设备里面,当启动程序时,对应的Mach-o文件就会被加载...

  • Mach-O二进制文件结构及其应用

    1. Mach-O 文件结构 Mach-O(Mach Object) 文件格式是 OS X 与 iOS 系统上的可...

  • fishhook 源码学习

    Mach-O 什么是Mach-O Mach-O 为 Mach Object文件格式的缩写,是用于 iOS 和 ma...

  • iOS进阶02: Mach-O

    一、什么是Mach-O文件? Mach-O是 Mach Object文件格式的缩写,是 mac以及 iOS上可执行...

  • Mach-O

    一、什么是Mach-O文件? Mach-O是Mach Object文件格式的缩写,是mac以及iOS上可执行文件的...

  • iOS逆向-Mach-O(Ⅴ)

    Mach-O文件 Mach-O其实是Mach Object文件格式的缩写,是mac以及iOS上可执行文件的格式, ...

  • iOS逆向06 -- Mach-O

    Mach-O文件 Mach-O是Mach Object文件格式的缩写,是mac以及iOS上可执行文件的格式;当iO...

  • link与Symbol

    Mach-O Mach-O(Mach Object)是macOS、iOS、iPadOS存储程序和库的文件格式。对应...

  • iOS开发进阶二:MACH-O与Symbol

    什么是MACH-O? Mach-O(Mach Object)是macOS、iOS、iPadOS存储程序和库的文件格...

  • Mach-O文件常见格式

    Mach-O是Mach Object的缩写,iOS和Mac上可执行的文件格式 Mach-O常见格式 >目标文件.o...

网友评论

      本文标题:iOS Mach-o文件学习

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