iOS安全:使用frida-ios-dump砸壳 / 2019-04-20

使用frida-ios-dump工具,部署好环境后,砸壳非常方便,推荐使用。

之前简单记录了 Clutch和dumpdecrypted砸壳工具的使用方法,但Clutch和dumpdecrypted都有缺点:

  • Clutch砸壳失败几率很大;

  • dumpdecrypted只会砸主二进制的壳,不能砸app中framework的壳。

推荐使用 frida-ios-dump,frida-ios-dump是通过JS注入的方式实现dump,会自动拷贝ipa文件到电脑。部署好环境后,操作非常简单,直接获取砸壳后的ipa包。按下方步骤部署。

越狱手机上安装的frida-server

添加源 https://build.frida.re 后,在 Cydia 中搜索并安装frida。

mac开发机上安装frida

sudo pip install frida –upgrade –ignore-installed six

mac开发机上安装libimobiledevice

libimobiledevice是支持将USB接口映射为HTTP端口的工具

brew install libimobiledevice

安装完成之后,将越狱手机通过USB连接到mac电脑,执行:

iproxy 2222 22

上述命令作用时将mac开发机上的2222端口通过USB接口映射到越狱手机的22端口。完成之后,我们可以通过ssh -p 2222 root@127.0.0.1登录到越狱手机终端。

使用frida-ios-dump

git clone https://github.com/AloneMonkey/frida-ios-dump.git

下载代码到本地,安装必要的python package

sudo pip install -r requirements.txt --upgrade

dump.py中的配置保持默即可。

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

执行:python dump.py 应用名称/bundle id 即可砸壳,会在mac开发机上当前目录生成砸壳后的ipa文件。

注意:

在越狱手机和mac开发机都安装了frida之后,需要保持版本号一致,否则会出现:

Failed to enumerate applications: unable to communicate with remote frida-server;

在越狱手机查看版本号:frida-server --version
在mac开发机上查看版本号:frida --version

通过frida-ios-dump砸壳后的ipa无论是内置动态库的还是有extension扩展的都能正常重打包运行。

参考:https://bbs.pediy.com/thread-224399.htm

其它文章

iOS安全:修改Mach-O
iOS安全:LC_LOAD_DYLIB和LC_ID_DYLIB
iOS安全:使用dumpdecrypted/Clutch 砸壳
iOS NSURLProtocol详解及使用陷阱