iOS逆向内容概述
- 先准备越狱iPhone
- 越狱工具
- unc0ver- 
- 自己下载unc0ver到iPhone中
- 运行unc0ver去越狱
 
- checkra1n- 
- Mac中运行checkra1n,根据操作提示去越狱
 
- 也可以借助于爱思助手的一键越狱去越狱
- 底层也是用unc0ver、checkra1n等工具
 
 
 
- 包括准备好常用越狱插件开发工具,比如
- Filza:文件管理
- OpenSSH:ssh连接操作iPhone
- AFC2:允许通过USB操作iPhone
- iCleaner Pro:临时禁止或启用插件
- AppSync Unified:免签名安装app
- 等等
 
 
- 再从AppStore安装的正版app中砸壳出ipa
 
- 常用工具
- frida-ios-dump
- Clutch
- dumpdecrypted
- bfinject
 
 
- 接着才是逆向开发
- 静态分析
- 从脱壳ipa解压得到app包
- 用class-dump导出头文件
 
- 以搞懂包含哪些类
 
- 查看二进制信息
- 导出字符串等资源
- strings
- nm
- otool
- jtool2
- rabin2
 
- 恢复符号表
- 分析代码逻辑
- IDA:Functions、Strings、Imports、F5伪代码、导出全部伪代码等好用的功能和模块
- Hopper
 
 
 
- 动态调试
- 用各种调试方式和工具去调试app的逻辑
- 常用调试方式
- 图形界面
- 入门时可用:Xcode+MonkeyDev
- 熟练时推荐:Xcode+iOSOpenDev
- 效果
- 好处
- Xcode内部有(好用的)lldb
- 可以写hook代码hook函数
- Xcode+lldb内置对于iOS的ObjC(甚至Swift)有比较好的支持
- 图形化界面方便调试
 
 
 
- 命令行:debugserver+lldb
 
- 常用逆向工具
- Frida:hook对应函数,调试输入参数和返回值
- 分析界面元素
- Cycript:查看页面元素的类和属性、实时修改各种值
- Reveal:查看UI页面详细属性
 
 
 
- 目的:搞懂我们所关心的app内部相关逻辑
 
- 最后才是:Tweak插件开发
- 常见插件开发框架
- 基于CydiaSubstrate
- fishhook
- CaptainHook
 
- 具体开发方式
- 命令行
- Theos/- Logos:写hook源码.xm,基于Makefile去编译
 
- 图形界面
- iOSOpenDev:把Logos等开发集成进了Xcode- 
- 支持Logos、CaptainHook等
 
 
- MonkeyDev:iOSOpenDev的改进版- 
- 支持Logos、CaptainHook等
 
 
 
 
 
- 去开发插件=写hook代码
- 前提:通过静态分析的头文件和动态调试,已知的app内部的类的属性和函数
- 核心逻辑:去hook对应类的函数和属性
- 实现对应的效果,比如:
- 调试:输出函数的输入参数和输出结果
- 修改逻辑:屏蔽原先逻辑,重写自己想要的逻辑
 
 
 
- 开发出的插件常用于
- 逆向破解特定app
- 绕过ssl证书校验,实现Charles抓包https可看到明文数据
- 修改app原有逻辑,实现特定的功能
- 支付宝:修改显示的余额
- 微信:抢红包
- 抖音:点赞关注
 
 
- 反反调试
- 反越狱检测