iosApp砸壳frida-ios-dump

首先:你要有一台越狱设备,并且上面安装了你想砸壳的App,没设备就不用往下看了,白搭。

本文主要使用的是frida-ios-dump,比较简便。

如果要用dumpdecrypted或者Clutch的回头再补充。【dumpdecrypted的已补充在最下方】

一:mac环境

1. 安装HomeBrew

用于安装wget、usbmuxd 等。

/usr/bin/ruby -e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

等待一会。

2. 安装Wget

wget是一个从网络上自动下载文件的自由工具。

brew install wget

3. 安装pip

pip 是Python 包管理工具,用于安装Python模块。

wget https://bootstrap.pypa.io/get-pip.py

sudo python get-pip.py

4. 安装matplotlib

sudo pip install matplotlib

5. 安装usbmuxd

主要用于在USB协议上实现多路TCP连接,将USB通信抽象为TCP通信。

brew install usbmuxd

6. 安装frida

Frida是一款基于python + javascript 的hook与调试框架。

它允许你将 JavaScript 的部分代码或者你自己的库注入到 windows、macos、linux、iOS、Android,以及 QNX 的原生应用中,同时能完全访问内存和功能。

sudo pip install frida --ignore-installed six -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

如果长时间没反应,建议代理V什么N后,再次执行,或多等待下。

【这里我连了V什么N,实在等不了】

7. 安装 frida-dump-iOS

基于frida,核心砸壳工具

sudo mkdir /opt/dump &&cd /opt/dump && sudo git clone https://github.com/AloneMonkey/frida-ios-dump

如果提示目录不存在,可以手动建立。

8. 安装脚本依赖环境

sudo pip install -r /opt/dump/frida-ios-dump/requirements.txt --upgrade

或者

cd /opt/dump/frida-ios-dump

sudo pip install -r requirements.txt --upgrade

【以下步骤我不需要,如果你需要,自己看着办】

9. 修改dump.py参数

用于自动连接ssh

open /opt/dump/frida-ios-dump/dump.py

找到如下几行(32~35):

User ='root'Password ='alpine'Host ='localhost'Port = 2222

按需修改 如把Password 改成自己的(一般默认都是alpine)

10. 设置别名

方便直接调用dump.py

在终端输入:open ~/.bash_profile在末尾新增下面一段:aliasdump.py="/opt/dump/frida-ios-dump/dump.py"

使别名生效:source ~/.bash_profile

二:手机环境

1. 安装OpenSSH

打开cydia

搜索安装OpenSSH

2. 安装frida

打开cydia 添加源:http://build.frida.re

打开刚刚添加的源 安装Frida

Frida分32位跟64位,我32位的4s这一步有问题,下面详细说。

看问题跳到下文【问题来了】,如果跟我问题一样,跳到【动态砸壳】

三:砸壳

拿出iOS 设备,USB 连接电脑。

打开Mac终端,输入

iproxy 2222 22

把当前连接设备的22端口(SSH端口),映射到电脑的2222端口

如果你usb插入了鼠标,那可能还要加设备id

iproxy 2222 22 1b31925611b31925615bc7c7c1d5bc7c7c1d

不然会提示连接失败

正常会提示等待连接,wating for connection...

这时候不要傻傻的等,打开一个新的终端

输入

ssh -p 2222 [email protected] 

连接iOS设备。

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

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

目标文件在user下

四:个别问题

【问题来了】:32位的4s ,到dump.py -l这一步会崩溃,调试了下dump.py的代码,发现device取详细信息的类好像有问题,同事这台4s 9.3.5是不完美越狱,不知道是不是跟这个有关系,其次,每次崩溃就重启,重启又要越狱一下,不想折腾了。64位我估计没问题。

由于dump.py会崩溃,而且手机要一直越狱很浪费时间,所以决定采用动态砸壳的方式继续:

动态砸壳】

dumpdecrypted

1、环境

电脑:

下载dumpdecrypted

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

手机:

Cydia源安装cycript

Cydia源安装openssh

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

3、ssh连接设备

ssh [email protected]

输入密码,默认都是alpine

4、寻找要砸壳的App

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

iosApp砸壳frida-ios-dump_第1张图片

上面的图是借的,自己没保存。可以查看到你想越狱的App的pid。

或者你如果知道AppName,也可以这样:

ps -e | grep AppName。

得到路径1(App路径)

5、先用  

cycript -p pid 

钩住 APP,会有个cy#

接着执行命令:

[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0] 

(如下图)        

得到路径2(Documents路径)

这步如果看不懂,留个图,我也折腾了一会

iosApp砸壳frida-ios-dump_第2张图片

6、将dumpdecrypted.dylib先进行签名

codesign --force --verify --verbose --sign "iPhone Developer:xxx" dumpdecrypted.dylib

否则砸壳命令可能会报Kill:9的错误

7将签名后的dumpdecrypted.dylib 拷贝到   用 路径2Documents 路径下。

8、执行砸壳,这里以微信为例:

DYLD_INSERT_LIBRARIES=/var/mobile/Containers/Data/Application/25025AC7-6BFD-4F00-B2A4-67D96AD0D35A/Documents/dumpdecrypted.dylib /var/containers/Bundle/Application/AD21CDC7-208E-48E6-B739-9448C64F7907/WeChat.app/WeChat

正常就好了,但是我出问题了,后来按下面的步骤成功,留个截图,如果签名后依然出现Kill:9的报错,可以尝试:

砸壳失败,出现Kill:9

a:)ssh链接iphone,输入  su mobile

b:)印象中有个提示,不管他,然后会进入/var/root,输入cd

c:)在cd后的mobile目录下执行砸壳命令,砸壳后的文件会在当前目录下。图片如下【我图没了,但是步骤没错,借个图】

iosApp砸壳frida-ios-dump_第3张图片
iosApp砸壳frida-ios-dump_第4张图片

将文件拷贝出来查下是否砸壳成功,

WeChat.app xxx$ otool -l WeChat | grep crypt

为0,完事。

你可能感兴趣的:(iosApp砸壳frida-ios-dump)