dumpdecrypted 脱壳的原理是通过手动注入到应用进程,然后在内存将解密的数据 dump 下来,如果有 framework 动态库的话,还需要修改 dumpdecrypted 代码,使用_dyld_register_func_for_add_image 注册回调对每个模块都进行 dump。整个脱壳操作还需要手动上传文件,下载文件,比较麻烦,而 frida-ios-dump 可以实现一键脱壳,只要在电脑上执行一条命令,就能够自动脱壳并从手机上保存到电脑。
一、安装 frida
默认 macOS 没有安装 pip,首先安装 pip,如果已经安装的可以忽略
1 2 3 |
sudo easy_install pip |
安装 frida
1 2 3 |
pip install --user frida sudo easy_install --upgrade frida |
安装 frida-tools
1 2 |
pip install --user frida-tools |
然后在目标手机上添加 Cydia 源 https://build.frida.re, 在手机上安装 Frida。
二、安装 frida-ios-dump
安装 frida-ios-dump
1 2 3 4 5 |
sudo mkdir /opt/dump cd /opt/dump sudo git clone https://github.com/AloneMonkey/frida-ios-dump sudo pip install -r /opt/dump/frida-ios-dump/requirements.txt --upgrade |
修改 /opt/dump/frida-ios-dump/dump.py 里的账户配置信息:
1 2 3 4 5 |
User = 'root' Password = ‘alpine’ Host = 'localhost' Port = 2222 |
三、脱壳
如果使用的是 USB 连接,对应的端口号使用 iproxy 进行转发数据:
1 2 |
iproxy 2222 22 |
dump.py -l 显示手机安装的应用列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
$ /opt/dump/frida-ios-dump/dump.py -l PID Name Identifier --- -------------- --------------------------- 395 App Store com.apple.AppStore 399 Cydia com.saurik.Cydia 384 设置 com.apple.Preferences 374 邮件 com.apple.mobilemail - FaceTime com.apple.facetime - Filza com.tigisoftware.Filza - Safari com.apple.mobilesafari - Terminal ws.hbang.Terminal - Wallet com.apple.Passbook - Watch com.apple.Bridge - h3lix org.tihmstar.h3lix - iBooks com.apple.iBooks - iTunes Store com.apple.MobileStore - 信息 com.apple.MobileSMS - 健康 com.apple.Health - 地图 com.apple.Maps - 备忘录 com.apple.mobilenotes - 天气 com.apple.weather - 家庭 com.apple.Home - 指南针 com.apple.compass - 提示 com.apple.tips - 提醒事项 com.apple.reminders - 播客 com.apple.podcasts - 日历 com.apple.mobilecal - 时钟 com.apple.mobiletimer - 查找 iPhone com.apple.mobileme.fmip1 ...... |
输入应用显示的名称,就可以脱壳:
1 2 3 4 5 6 7 8 9 10 11 12 |
/opt/dump/frida-ios-dump/dump.py 抖音短视频 Start the target app 抖音短视频 Dumping 抖音短视频 to /var/folders/b6/hz28kl9x2tv102c51hgnc0g00000gn/T start dump /var/containers/Bundle/Application/46C247B3-D680-4962-876F-EAE5E4596A57/Aweme.app/Aweme Aweme.fid: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 61.8M/61.8M [00:05<00:00, 11.8MB/s] start dump /private/var/containers/Bundle/Application/46C247B3-D680-4962-876F-EAE5E4596A57/Aweme.app/Frameworks/AgoraRtcEngineKit.framework/AgoraRtcEngineKit AgoraRtcEngineKit.fid: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 8.24M/8.24M [00:01<00:00, 8.51MB/s] start dump /private/var/containers/Bundle/Application/46C247B3-D680-4962-876F-EAE5E4596A57/Aweme.app/Frameworks/LiveStreamFramework.framework/LiveStreamFramework LiveStreamFramework.fid: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 903k/903k [00:00<00:00, 5.29MB/s] InfoPlist.strings: 114MB [00:24, 4.89MB/s] 0.00B [00:00, ?B/s]Generating "抖音短视频.ipa" |
也可以输入包名:
1 2 |
/opt/dump/frida-ios-dump/dump.py -b com.tencent.xin |