最近重拾逆向,整理一下最新实战方法,这篇主要整理了需要配置的环境和安装的软件,后面会陆续介绍相关的使用和其他相关概念
越狱
把家里的一台闲置6sPlus拿来作为越狱机了,系统为iOS11.4.1,没有仔细研究目前不同的系统版本越狱后会有什么差异,个人建议还是尽量找一个可越狱的最高系统版本,防止以后随着Depoyment Target版本升高而无法安装App Store包
基本概念
完美越狱
iphone重启后软件依然正常使用,iOS9.1之后再无完美越狱
不完美越狱
iphone重启后软件无法正常使用,需要重新越狱,当然现在使用的主流越狱工具app都自带一键重新越狱,也并不麻烦
工具
-
爱思助手
刚开始尝试的是爱思助手,里面有一键越狱工具,目前支持iOS10-12.1.2,内部使用的是electra工具来进行的越狱,按照操作指引,越狱成功!
接下来就是痛苦的时刻了,装afc2报错,cycript报错,Cydia Substrate报错,直接原地爆炸,各种找资料,找解决办法,得出结论恢复未越狱环境,重新用其他工具越狱,这里 会教你如何恢复用electra来越狱的环境。恢复好环境,换工具。。。
-
unc0ver
按照官网指引,- 打开xcode,新建一个工程
- 连接要越狱的真机
- 登陆开发者账号随便填写一个identifier,自动生成证书和provisionfiles
- 从官网下载最新的ipa文件
- 用从官网下载iOS App Signer签名工具签名,证书勾选选择xcode生成的证书,点击Start
- 打开xcode->Window->Devices and Simulators
- 点击左下角+,安装重签名后的ipa
- 安装完毕后手机会有一个unc0ver app,打开,点击蓝色越狱按钮
- 一系列的步骤结束后,Cydia出现,越狱成功
Tips:免费账号签名的证书只有7天有效期,建议有条件的还是用付费个人账号,或者企业账号签名App,不然到期之后又需要重签。那有什么关系呢?由于现在都是不完美越狱,手机重启后就需要用unc0ver重新一键越狱,证书过期会导致unc0ver无限闪退,所以只有充钱才能变强
-
CheckRa1n
- 也是主流越狱方式,精力关系没有尝试
配置开发环境
添加Cydia源
由于自带的源可能不包含所需的开发者工具,所以需要添加一些第三方源,这里推荐几个:
- 雷锋源:
https://apt.abcydia.com
- 小苹果:
http://apt.cydiabc.top
- XLsn0w:
https://slsn0w.github.io/tweak
手机安装
AFC2
一个能读取手机系统全路径的插件,否则用IFunBox或者爱思工具查看系统文件路径时会显示不全,展示的目录不能从/开始,可能只能media开始
- 在Cydia中搜索“AFC2 iOS11~13系统路径”
- 安装,重启SpringBoard
Cycripy
一个必备的调试工具,这里是官网简介
- 同样的方法在Cydia中搜索Cycript
- 安装
Reveal2Loader
一个必备的App UI界面分析工具
- 同样的方法在Cydia中搜索Reveal2Loader
- 安装
- 打开手机->设置->Reveal,讲需要调试的app 打开
AppSync Unfied关闭签名
关闭iOS签名,可以随意安装ipa
- Cydia中搜索AppSync
CrackerXI+
脱壳工具
若手机是iOS11及以上建议用此工具,下图是常用工具及可使用的对应版本
Mac上安装
Reveal客户端
这里推荐这里下载绿色版到mac
-
打开Mac端的Reveal,可能会报错提示版本问提
- 解决办法:
- 打开/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/RevealServer.framework
- 复制framework下的RevealServer复制到电脑桌面并重名为Reveal2Loader.dylib
- 将Reveal2Loader.dylib复制到移动设备的/Library/MobileSubstrate/DynamicLibraries目录下,替换掉原来的动态库
- 重启Reveal即可
iFunBox
一个能读取、操作手机目录文件的工具,爱思助手也有这个功能,大同小异
- 官网直接下载安装即可
配置usbmuxd
端口映射工具,用usb来实现ssh登陆,从而用usb连接代替tcp来传输数据,大大提高效率
- 下载工具包,运行tcprelay.py脚本
python tcprelay.py -t 22(被替换的端口):80880(替换端口)
- 本地再需要ssh到手机就只需要
ssh root@localhost -p 80880
- 通常会配合公钥配置到服务端的方式来更加简单实现免密码登陆
theos
提供tweak模版,hook代码在此编写,提供hook的动态库生成,动态库注入能力
- 安装ldid
bew intall ldid
- 新增环境变量到~/.bash_profile
export THEOS=~/theos
export PATH=$THEOS/bin:$PATH
- 环境变量立即生效
source ~/.bash_profile
- 下载theos
git clone --recursive https://github.com/theos/theos.git $THEOS
class-dump
能把Mach-O文件的class信息dump出来,生成.h头文件
- 点这里 下载下来可执行文件
- 将可执行文件放入
/usr/local/bin
目录 - 若无执行权限需加
chmod +x /usr/local/bin/class-dump
- 用法
class-dump -H Mach-O文件路径(脱壳后的文件) -o 头文件存放目录
MachOView
一款图形化界面查看、分析Mach-O文件的工具
Hopper Disassembler
图形化反编译工具,将Mach-O二进制文件反编译成汇编代码,绿色版下载链接