iOS进阶之逆向工程(越狱、砸壳、反编译)
背景
这篇文章只是个人记录,是如何一步一步从越狱一部手机到反编译一个APP,故不作为教材文章,仅供参考。
第一步、越狱
关于越狱看 这篇文章
足以,这里简单对这篇文章做下记录:
1、用苹果手机自带的Safari浏览器打开app.ignition.fun
2、进去后点击中间的按钮
3、点击Jailbreaks
4、点击Jailbreaks进去后拉倒最后点击Pwn20wnd
5、点击GET然后点安装
6、去设置信任证书,如果无法信息,卸载重新下载
7、打开刚才安装的unc0ver APP
8、点击「Jailbreak」按钮,越狱过程可能会重启三次,每次重启后再打开unc0ver APP点击Jailbreak按钮。
9、出现Cydia后代表越狱成功
注:如果越狱过程中,卡住OTA问题上,请到设置->存储管理里删除已经下载好的系统文件,如果删除了还是不行的话,请自行谷歌或者百度, 我因为有部专门测试手机,我选择了直接重置手机。懒得去找其他办法了。
第二步、砸壳
这里选择一键砸壳工具frida-ios-dump
frida-ios-dump 下载地址
1、先安装frida
首页安装pip,打开终端,执行以下命令(如果已安装请跳过)
sudo easy_install pip
其次,执行以下命令安装frida
sudo pip install frida-tools
如果安装报以下错误,
Uninstalling a distutils installed project (six) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
执行以下命令,
sudo pip install frida –upgrade –ignore-installed six
然后重新执行,
sudo pip install frida-tools
2、使用你的越狱手机,启动 Cydia,安装frida插件
软件源 Sources-> 编辑 Edit(右上角)-> 添加 Add(左上角)-> 输入 https://build.frida.re%EF%BC%8C%E9%80%9A%E8%BF%87%E5%88%9A%E6%89%8D%E6%B7%BB%E5%8A%A0%E7%9A%84%E8%BD%AF%E4%BB%B6%E6%BA%90%E5%AE%89%E8%A3%85
frida 插件。
3、通过USB链接手机和电脑
具体如何链接ssh这里 有篇文章
, 我这里做简单记录:
1、在手机上打开 Cydia
,搜索 openssh
并安装
2、在Mac终端执行 brew install libimobiledevice
3、完成第二步后执行 iproxy 2222 22
,进行端口转换,此时终端界面显示 waiting for connection
4、打开新的终端执行 ssh -p 2222 root@127.0.0.1
, 这时候可能会出现 The authenticity of host '[127.0.0.1]:2222 ([127.0.0.1]:2222)' can't be established.
ECDSA key fingerprint is SHA256:+0hOqiykO/N5kh9p+mYk2pb+2MAb5Q1DkFK9tTCZ7TU.
Are you sure you want to continue connecting (yes/no)?
.
输入yes后按回车,此时会提示你输入手机的root密码,默认密码是:alpine ,然后之前的那个 waiting for connection
终端窗口,就显示连接成功了。
4、执行 frida-ps -U
查看手机上安装的app
新开一个终端,执行 frida-ps -U
即可在终端显示已安装app
5、cd到已经下载的 frida-ios-dump
目录,执行以下命令安装依赖库 sudo pip install -r requirements.txt --upgrade
6、开始砸壳
./dump.py app名称
这里的app名称为在手机桌面上显示的名称,砸壳完成后,会在frida-ios-dump目录里生成一个已砸壳的ipa文件,即可脱壳的app。
7、判断是否砸壳
判断是否砸壳,进入app目录- otool -l WeChat | grep crypt