iOS攻防-序章(1)-Mach-O文件结构解析

本文是iOS逆向工程系列的第一篇,主要介绍Mach-O文件结构,包括Header、Load commands、segment和Section。Mach-O是Mac和iOS系统的可执行文件格式,MachOView是分析此类文件的工具。Header包含魔数、CPU类型、文件类型等信息,Load commands指示如何处理二进制数据,segment和Section则定义了文件的内存布局。Load commands中的LC_LOAD_DYLIB等命令揭示了库的依赖关系,暗示了修改Load commands可动态添加库。

前言:最近因为工作需要,一直在研究iOS的逆向工程。说起来,这个方面涉及到的的知识面实在太广,所以想开一个系列,从基础知识到实战攻防,系统的总结一下最近的所思所学。

第一篇,先从一个基础知识开始:Mach-O文件。

说起Mach-O文件,很多开发人员应该不陌生。即使你没有听过Mach-O,但你也肯定知道exe文件是什么。每个操作系统都有自己的可执行文件,比如Linux下的ELF,Windows下的exe。而Mach-O,就是Mac系统上的可执行文件。比如,每个iOS开发几乎都接触过dsym,dsym就是一种Mach-O文件。

这里先介绍一个工具:MachOView,一个观察Mach-O文件的利器,我们之后的后多观察都是使用这个工具来进行。

构成

Mach-O 主要包括了HeaderLoad commandsDataSegement和Section)等几个部分

用网上的一张图来描述下Mach-O的结构:

Header:

header是一些基础信息,比如魔数、CPU构架、文件类型等等

struct mach_header {
    uint
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值