IPA(Mach-O)逆向破解工程分析思路

因为工作需要大致分析下逆向思路来做一些常识,所以就记录了此文。主要用于未来自己的一个回顾和想法迭代。

一般来说逆向工程我们逆向的是里面的可执行代码,资源都是可以直接解压开的。而逆向的基本结构则是Mach-O文件(Mach Object文件)

主要结构是:
Header(头文件,架构类型等)
Load Commands(描述文件在虚拟内存中的结构和布局)
Raw Segments Data(在Load Commands的Segments原始数据)

我们知道大概结构之后就有了逆向思路。

分析工具:

Cycript、Reveal
用作界面分析

class-dump
可以根据Mach-O文件的运行原理,获得其所有头文件结构。有了头文件结构,大概可以分析出应用的整体结构。
http://stevenygard.com/projects/class-dump/

MachOView
可以查看Mach-O的工具
https://github.com/gdbinit/MachOView

dumpdecrypted
在Appstore上下的应用都被加密过了,要获取头文件都要先砸壳。砸壳,需要用到dumpdecrypted
https://github.com/stefanesser/dumpdecrypted/

Hopper Disassembler
根据class-dump的头文件结构,来分析对应的二进制文件。
https://www.hopperapp.com/

debugserver、LLDB
用作动态调试分析,对运行中的 APP 进行代码调试

代码编写后,注入代码到 APP 中,还需要 重新签名、打包ipa等。

大佬的实战细节操作:
https://www.jianshu.com/p/78de4edeee39

更细节的东西可以参考下其他大佬的博客:
http://www.swiftyper.com/

你可能感兴趣的:(IPA(Mach-O)逆向破解工程分析思路)