最近买了庆总的《iOS应用逆向与安全》,学习过程中,记录下自己的总结,以后忘了好方便来查。。。(强烈建议买一本回去读,能够系统性的学习逆向方面的知识。如果基础不够可以再买一本狗神的小黄书《iOS应用逆向工程》)
逆向了解
通过越狱获取手机的root权限后,访问整个手机的文件系统,编写动态库注入到指定的应用中。
基础了解
通过Mac端的iFunBox了解iPhone的文件系统(或者iPhone的越狱商店的iFile)
逆向流程(自己通过学习实践总结的,可能会有遗漏。。。)
- reveal静态分析界面, Cycript动态分析界面
- 获取应用安装包,解密应用,class-dump出头文件
- 根据以上两点,找到函数的大概或者具体位置后,hook函数相关的类,打印函数执行的信息来验证函数。
- 找到具体函数后,将软件的可执行文件放入hopper或者ida中进行静态分析函数执行逻辑。
- 通过lldb以及上个步骤获取到函数的文件偏移地址,对APP进行动态调试,打印函数参数等信息
- 根据4和5来分析函数后,想好如何修改函数逻辑。
- 通过Theos编写hook代码,打包成dylib动态库。
- (越狱)将动态库直接安装到越狱手机中(通过DYLD_INSERT_LIBRAPIES配置环境变量)
- (非越狱)修改APP二进制的Load Commands,将7打包好的动态库放入到APP安装包中,对APP二进制以及APP中的动态库进行重签名后,安装到非越狱手机中