iOS常见砸壳方法

App Store下载的包全都是经过苹果加密过的包。苹果不允许开发者自己加密ipa包,加密后的ipa包,我们是无法对其进行反编译的。也无法class-dump,需要对其进行解密才能反编译。因此本文从三种不同砸壳方法进行了阐述。

Frida

ios端配置:

1、安装frida

  • 启动cydia ,添加软件源:软件源 Sources-> 编辑 Edit(右上角)-> 添加Add(左上角)-> 输入[https://build.frida.re]

图片.png图片.png图片.png

  • 打开刚刚添加的源安装 Frida

图片.png图片.png

  • 安装完成!检查是否工作,可在PC终端安装完frida之后运行 frida-ps -U 查看

图片.png图片.png

2、搜索安装OpenSSH

打开cydia-点击搜索-输入OpenSSH,安装OpenSSH

图片.png

PC端配置:

1、安装Homebrew

    图片.png2、安装python:

brew install python

图片.png

3、安装wget:

brew install wget

图片.png

4、安装pip:

图片.png

图片.png5、安装usbmuxd:

brewinstall –-HEAD usbmuxd

图片.png

6、清理残留:

rm ~/get-pip.py

图片.png

Ps: 使用brew install xxx如果一直卡在Updating Homebrew… 可以control + z结束当前进程 再新开一个终端安装 此时可以跳过更新

安装frida for PC:

1、 终端执行命令安装frida

   sudo pipinstall Frida

图片.png

2、 安装frida-tools

sudo pip install frida-tools【frida-tools是frida命令行工具】

图片.png

注意:frida和frida-tools二者缺一不可。

假如报以下错误:

-Uninstalling a distutils installed project (six) hasbeen deprecated and will be removed in a future version. This is due to thefact that uninstalling a distutils project will only partially uninstall theproject.

使用以下命令安装:

sudo  pip install frida –upgrade –ignore-installed six

配置frida-ios-dump环境:

1、在https://github.com/AloneMonkey/frida-ios-dump下载砸壳的脚本并解压,然后cd到requirement.txt的录下

图片.png2、安装依赖:

sudopip install -r ./requirements.txt –upgrade 【这里是安装脚本中依赖的库,./requirements.txt路径根据自己的文件路径修改】

图片.png

3、 修改dump.py参数:
vim /home/ubuntu/文档/frida-ios-dump-master/dump.py
找到用户名、密码等信息

图片.png

   如果你的设备连接密码做了修改需要在目录中的dump.py里面将Password改成你设置的密码。

   备注:如果不习惯vim 打开/home/ubuntu/文档/frida-ios-dump-master/dump.py手动编辑。

砸壳演示!

1、 iOS 设备,USB 连接电脑。

2、 打开PC终端,输入iproxy  2222 22把当前连接设备的22端口(SSH端口),映射到电脑的2222端口。

图片.png

3、新建终端页面,输入ssh -p 2222 root@127.0.0.1 连接iOS设备。

 图片.png

4、dump.py -l 查看需要砸壳的应用。

图片.png

5、 dump.py 应用名或bundle id进行砸壳.

./dump.py(cd到dump.py的路径下) 应用名称

图片.png

Clutch

1. 下载Clutch最新版本工具(https://github.com/KJCracks/Clutch/releases)

图片.png

2. 编译生成clutch执行文件

图片.png

3、将clutch执行文件拷贝到手机里

执行命令:scp  /home/ubuntu/files/Clutch  root@10.27.1.46:/usr/bin

拷贝到 /usr/bin/ 目录下, 这样就可以在任何有权限的地方都可以调起Clutch命令工具图片.png

4. 打开Clutch 的执行权限

调用clutch 会提示 -sh /usr/bin/Clutch: Permission denied 没有权限, 我们就需要使用下列命令给Clutch执行权限

sudo chmod 777 /home/ubuntu/files/Clutch

5. 连接设备,cd到clutch路径下

链接设备

ssh root@10.27.1.46

图片.png

cd到clutch路径下

图片.png

6. 查看当前手机程序未砸壳的应用

Clutch -i

图片.png

7. 对列出的正版应用砸壳

使用对应列表号或bundleID进行砸壳

Clutch -d <com.diary.mood>
或者
Clutch -d 12

 图片.png

 

 

dumpdecrypted

1、下载dumpdecrypted

下载地址:https://github.com/stefanesser/dumpdecrypted

图片.png

2、终端输入cd到下载的目录,再输入make得到dumpdecrypted.dylib文件

图片.png

3、连接设备

ssh root@10.27.1.46

图片.png

步骤4、寻找要砸壳的App

ps -e  (得到所有手机运行的app进程)

图片.png

得到要砸壳APP的路径,保存等待之后使用

4981 ?? 0:00.77/var/containers/Bundle/Application/BAC6561B-1665-41CD-A360-BA0A6099459C/Study.app/Study

5、进入到进程中

输入cycript -p 4981,得到路径  

/var/Containers/Data/Application/A28D18B7-37FF-43D9-B1F0-E6E0EAD5794A/Documents/

6、退出手机连接,注入动态库

scp /home/ubuntu/文档/dumpdecrypted.dylib root@10.27.1.46:/var/Containers/Data/Application/A28D18B7-37FF-43D9-B1F0-E6E0EAD5794A/Documents/

第一个是dumpdecrypted.dylib路径,第二个是第五步得到的路径

7、再次连接设备砸壳

ssh root@10.27.1.46

cd 到第五步得到的路径下

cd/var/Containers/Data/Application/A28D18B7-37FF-43D9-B1F0-E6E0EAD5794A/Documents/ 

DYLD_INSERT_LIBRARIES=dumpdecrypted.dylibvar/containers/Bundle/Application/BAC6561B-1665-41CD-A360-BA0A6099459C/Study.app/Study 

【后面参数是第五步得到的路径】

8、导出得到的decrypted后缀文件

scp root@10.27.1.46:/var/mobile/Containers/Data/Application/A28D18B7-37FF-43D9-B1F0-E6E0EAD5794A/Documents/Study.decrypted   /home/ubuntu/桌面

【第一个参数是第五步得到的路径,第二个参数是电脑桌面路径】

 

 

关注我们

Tide安全团队正式成立于2019年1月,是以互联网攻防技术研究为目标的安全团队,目前聚集了十多位专业的安全攻防技术研究人员,专注于网络攻防、Web安全、移动终端、安全开发、IoT/物联网/工控安全等方向。

想了解更多Tide安全团队,请关注团队官网: http://www.TideSec.net 或关注公众号:

1551433162_5c78fdca9fae9.jpg

更多精彩
发表评论

已有 1 条评论

取消
Loading...

填写个人信息

姓名
电话
邮箱
公司
行业
职位
css.php