游戏安全实验室 首页 技术入门 查看内容

 阅读目录

IOS平台Mach-O文件格式介绍

发布于:2016-4-25 18:35   |    202740次阅读 作者: 管理员    |   原作者: TP   |   来自: 原创

IOS平台中可执行文件属于Mach-O格式,Mach-O文件格式没有Windows平台的PE文件复杂,一般的Mach-O文件由三部分组成,分别为:文件头、Command信息、节段的数据和代码内容信息,对应文件结构截图如下:

下面介绍Mach-O的文件头、Command信息结构。

1、文件头格式

文件头分为32位和64位两个版本的Mach-O文件头,两个版本对应文件头格式如下:

 

       

64位文件头信息币32位文件头信息多出了reserverd字段,下图为IDA中查看雷霆战机IOS 32位版本文件头信息:

MachOView工具可查看Mach-O文件格式的详细信息,该工具只能Mac系统中运行,对应查看雷霆战机中IOS平台32位可执行文件头信息如下所示(与上图IDA内容对应):

Mach-O的文件头格式较为简单,其中Magic Number属于文件标识的类型信息,通过该字段可判断文件是否同时包含32位、64位版本信息。

 

2、Load Command信息解析

文件头之后的内容属于Load Command信息,Load Command结构定义如下所示:

Cmd的项数和大小由文件头进行定义,其中cmd表明当前项属于哪种Command,不同的Command会有不同的解析方式,其中部分CMD内容如下图所示:

上图为部分CMD内容的定义和解释,例如其中LC_GEGMENT表明当前文件数据内容中节段信息(如代码段、数据段等)、LC_LOAD_DYLIB为当前需要加载的动态库信息。例如LC_LOAD_DYLIB项Command结构定义如下:

IDA中查看雷霆战机某项LC_LOAD_DYLIB实际内容如下图所示:

Mach-O文件包括较多的CMD项内容,通过Command内容可将文件数据和代码正确的加载、依赖库的加载等。

以上详细介绍Mach-O格式的文件头、Load_Command定义和解析,Mach-O文件头每项详细解析可参考苹果官方链接:https://developer.apple.com/library/mac/ documentation/DeveloperTools/Conceptual/MachORuntime/


*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)

分享到:
踩0 赞1

收藏

上一篇:Android平台ELF文件格式

下一篇:IDA静态分析介绍

最新评论
B Color Image Link Quote Code Smilies

发表评论