- 一张图
- 之前在http://www.iosre.com/ 上看到的,我觉得整个学习思路非常清晰:
- 之前在http://www.iosre.com/ 上看到的,我觉得整个学习思路非常清晰:
- 一些常用的工具:
- 砸壳:越狱市场/clutch/dumpdecryted
- 加壳:对可执行文件的编码进行改变/加密/压缩,达到保护程序代码的目的。App Store下载的ipa包是会加壳的
- 脱壳/砸壳:将未加密的可执行文件还原出来
- 头文件:class-dump/MonkeyDev
- class-dump:将Mach-O文件的.h导出。对Mach-O文件操作
- 界面分析:reveal,cycript,lldb+chisel,MachOView
- cycript:可以调试、修改正在运行的app
- reveal:没了解过逆向的同学应该也知道,但是看身边的开发,用的人其实并不多,个人觉得利用好这个工具对开发效率提升非常显著,特别是对某些组件或者代码并不熟悉的时候,能快速定位view所在的文件及层级结构
- 架构分离:lipo
- 通用二进制文件:同时使用多种架构的二进制文件。导出特定架构的独立的二进制文件
- 静态分析:hopper,ida
- 将Mach-O的机器语言反编译成汇编代码、OC伪代码 or Swift伪代码
- 动态调试:lldb,debugserver
- 对运行中的app进行调试,设置断点、控制流程等
- 插件开发:Theos-tweak(越狱机直接打包/发布插件即可,非越狱机产出dylib,注入动态库/重签名、打包发布)
- Theos:越狱开发工具包
- 重签名:ldid,GUI-iOS App Signer(非越狱机需要)
- 涉及签名机制:可执行文件一旦破坏,如果需要重新安装就要重签名
- 动态库注入:insert_dylib(非越狱机需要)
- theos开发插件时,需要tweak依赖的动态库进行注入,动态库也要重签名
- 砸壳:越狱市场/clutch/dumpdecryted