看看逆向过程中,经常遇见的Mach-O文件类型:
MH_OBJECT,这种类型的文件有目标文件(.o)、静态库文件(.a) (静态库文件就是N个.o文件合并在一起的)
MH_EXECUTE,可执行文件,例如上面说的Super文件
MH_DYLIB,动态库文件,包括.dylib、.framework
MH_DYLINKER,动态链接编辑器,例如:位于手机这里的Device/usr/lib/的dyld程序
MH_DSYM,存储二进制符号信息的文件,dsym文件常用于分析APP的崩溃信息
所以,我们应该从界面分析、代码分析、动态调试、代码注入这几个方面进行分析
界面分析,就是查看视图层级结构,推荐使用Cycript或者Reveal,Cycript可以以文字的形式查看层级结构,Reveal可以以3D的视角查看层级结构,这两个工具的使用前边已经说过了
代码分析,就是对Mach-O文件进行静态分析,推荐使用MachOView、class-dump、Hopper Disassembler、ida等工具 (Mach-O是什么,这些工具怎么用,别着急,下面会对Mach-O文件进行详细介绍; 静态分析就是APP不运行)
动态调试,就是对运行中的APP进行代码调试,推荐使用debugserver、LLDB等工具,我们后面也会有详细介绍
4.代码编写及注入,就是将自己写的代码注入到别人的APP中,必要时还可以重新签名,并打包成ipa