iOS逆向-->一键砸壳
ios端配置:
打开cydia 添加源: https://build.frida.re
打开刚刚添加的源 安装 frida
安装完成!检查是否工作可以可在手机终端运行 frida-ps -U 查看
mac端
配置frida-ios-dump环境:
从Github下载工程:https://github.com/AloneMonkey/frida-ios-dump
cd 到frida-ios-dump目录
安装依赖:
sudo pip install -r requirements.txt --upgrade (Python 2.7)
sudo pip3 install -r requirements.txt --upgrade (Python 3.x)
--本人测试用的这个
通过usb方式ssh到越狱设备
brew install usbmuxd
安装usbmuxd库之后,就顺带安装了一个小工具iproxy,该工具会将设备上的端口号映射到电脑上的某一个端口,例如:
iproxy 2222 22
以上命令就是把当前连接设备的22端口(SSH端口)映射到电脑的2222端口,那么想和设备22端口通信,直接和本地的2222端口通信就可以了。 因此,SSH连接设备就可以这样连接了:
ssh -p 2222 root@127.0.0.1
默认用户名密码
User = 'root'
Password = 'alpine'
直连成功
配置免密码登录越狱设备(如果没有越狱设备,跳过)
ssh-keygen -t rsa -P ''
ssh-copy-id -i /Users/username/.ssh/id_rsa root@ip
ssh -p 2222 root@127.0.0.1
root@127.0.0.1's password:
iPhone-4s:~ root# frida-server &
一键砸壳
最简单的方式直接使用./dump + 应用显示的名字即可,如下:
734 PP助手 com.teiron.pphelperns
1151 QQ com.tencent.mqq
368 设置 com.apple.Preferences
1139 zsuf com.ifmoc.ZhuiShuShenQi
214 邮件 com.apple.mobilemail
- App Store com.apple.AppStore
- Cydia com.saurik.Cydia
- FaceTime com.apple.facetime
- Game Center com.apple.gamecenter
- Passbook com.apple.Passbook
- Safari com.apple.mobilesafari
- iTunes Store com.apple.MobileStore
- 信息 com.apple.MobileSMS
- 地图 com.apple.Maps
- 备忘录 com.apple.mobilenotes
如果存在应用名称重复了怎么办呢?没关系首先使用如下命令查看安装的应用的名字和bundle id:
➜ frida-ios-dump git:(master) ✗ ./dump.py -l
PID Name Identifier
----- ------------------------- ----------------------------------------
9661 App Store com.apple.AppStore
16977 Moment com.kevinholesh.Moment
1311 Safari com.apple.mobilesafari
16586 信息 com.apple.MobileSMS
4147 微信 com.tencent.xin
10048 相机 com.apple.camera
7567 设置 com.apple.Preferences
- CrashReporter crash-reporter
- Cydia com.saurik.Cydia
- 通讯录 com.apple.MobileAddressBook
- 邮件 com.apple.mobilemail
- 音乐 com.apple.Music
......
frida-ios-dump git:(master) ./dump.py -b com.tencent.xin
成功如下图:
image
等待自动砸壳传输完成之后便会到当前目录生成一个解密后的ipa文件,这个时候赶紧拖到MonkeyDev开始逆向之旅吧!
坑
- ./dump.py 追书神器
错误: Start the target app 追书神器
Failed to enumerate applications: unable to connect to remote frida-server: Unable to connect (connection refused)
解决办法:检查手机frida的版本,还有区分32bit 和64bit版本。