跳到主要内容

砸壳

Frida(Mac+Windows)

Dumpdecrypted(Mac)

Clutch(Mac)

Bfdecrypt(IOS)

CrackerXI+(IOS)

dumpbinaryfiles app

一、Frida(Mac+Windows)「方法一复杂**」**

Frida是一个利器,除了砸壳还有很多作用,不仅在iOS上用处很大,在Android上更加厉害,想进一步了解的可以自行搜索研究。

一、首先用终端安装Frida

sudo pip install frida 【这里是Python API binding】suo pip install frida-tools 【这里是frida 命令行工具】二者缺一不可,这是2019年11月12日最新版本的frida

二、然后下载砸壳脚本,然后CD到目录中

https://github.com/AloneMonkey/frida-ios-dump这里是Python2的脚本项目地址
https://github.com/AloneMonkey/frida-ios-dump/tree/3.x这里是Python3的脚本项目地址

操作

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

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

三、设置手机连接的端口

iproxy 2222 22

四、再打开一个电脑命令行终端,新建一个文件夹,cd进去,准备接受要砸壳出来的iPA文件

五、将dump.py脚本拖入命令行终端,在后面输入要砸壳的App名称或者bundleID

./dump.py QQ 【./dump.py路径根据自己的文件路径修改】
//QQ是进程 例如

即可拿到砸壳出来的iPA文件了。

【注:手机上需要砸壳的App要在运行的状态】

一、Frida(Mac+Windows)「方法二简单」

基于Frida的App解密器。需要越狱的iOS设备和frida.re

![图片] (ios/resources/F1BE1BC0F43E4601B4F2A71E9B39290C.gif)

//该项目的名称没有任何意义。我只是在打字时听那首歌。

先决条件「Prerequisites」

在设备中「On Device」

https://frida.re/docs/ios/

如同以上地址教程那样。无需SSH。「That's all. No SSH required.」

在桌面上「On Desktop**」**

node.js最新的LTS(长期支持)「node.js Latest LTS (Long Term Support)」

https://nodejs.org/en/

zip命令(可选)。该命令可用时,我们将生成一个ipa存档「zip command (optional). We'll generate an ipa archive when this command is avaliable」

就这样。Npm可以处理所有依赖项「That's all. Npm can handle all dependencies.」

Windows 兼容性「Windows Compatibility」

 在frida@12.5.5无法通过USB连接设备之前(参考:12.5版本说明)。请使用最新的Frida来克服这个问题;「Before frida@12.5.5 it was unable to connect device via USB (ref: 12.5 release note). Please use up-to-date frida to overcome this;」

iOS的文件系统不同于Windows。如果您在Windows上运行bagbak,则某些文件属性(例如,可执行位)将丢失,因此重新包装的ipa可能无法在手机上重新安装。但是,只要您愿意进行静态分析就没有关系。「Filesystem of iOS differs from Windows. If you are running bagbak on Windows, some of the file attributes (e.g., executable bit) will be lost, thus the repacked ipa may not be able to reinstall on your phone. But it does not matter if you only indend to do static analysis.」

**安装「Install**」

npm install -g bagbak

用法「Usage」

bagbak [捆绑ID或名称]「bagbak [bundle id or name]」

Options: -l, --list list apps -H, --host \<host\> hostname -u, --uuid \<uuid\> uuid of USB device -o, --output \<output\> output directory -f, --override override existing -e, --executable-only dump executables only -z, --zip create zip archive (ipa) -h, --help output usage information

此方法支持IOS13 Checkrain「Yet another frida based iOS dumpdecrypted, works on iOS 13 with checkra1n and supports decrypting app extensions」

https://github.com/Acreson/bagbak这是项目地址

二、Dumpdecrypted(Mac」

这个方法砸壳App不会生成iPA文件,生成的是decrypted后缀的文件。

一、下载dumpdecrypted

https://github.com/stefanesser/dumpdecrypted

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

三、链接设备

ssh root@X.X.X.X //X.X.X.X 为越狱设备的ip地址

四、寻找要砸壳的App

ps -e 【得到所有手机运行的app进程】
得到路径,先做保存,之后有用
1890 ?? 0:14.42 /var/mobile/Containers/Bundle/Application/CBE24EFB-D045-4F10-ACB5-7E7B0794C5E9/WeChat.app/WeChat

五、进入到进程中

cycript -p 1890
[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
/var/mobile/Containers/Data/Application/A28D18B7-37FF-43D9-B1F0-E6E0EAD5794A/Documents/
得到路径,先做保存,之后有用

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

scp ./dumpdecrypted.dylib root@x.x.x.x:/var/mobile/Containers/Data/Application/A28D18B7-37FF-43D9-B1F0-E6E0EAD5794A/Documents/

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

七、再次连接设备砸壳

ssh root@x.x.x.x
cd /var/mobile/Containers/Data/Application/A28D18B7-37FF-43D9-B1F0-E6E0EAD5794A/Documents/
【cd 到第二步得到的路径下】
DYLD\_INSERT\_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/CBE24EFB-D045-4F10-ACB5-7E7B0794C5E9/WeChat.app/WeChat
【后面参数是第一步得到的路径】

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

scp root@x.x.x.x:/var/mobile/Containers/Data/Application/A28D18B7-37FF-43D9-B1F0-E6E0EAD5794A/Documents/WeChat.decrypted /Users/bean/Desktop/decrypted

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

也可以使用第三方助手直接找到路径导出,比如Filza

三、Clutch(Mac)

Clutch是一个比较经典的砸壳工具了,但是由于很多App都不能砸壳成功导致用户逐渐减少,但是也可以拿来一用。

一、下载Clutch源码

https://github.com/KJCracks/Clutch/releases

二、编译工程生成clutch执行文件

![图片] (ios/resources/EB3AF075B8841F3AB4A022BE72046360.jpg)

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

可以直接使用命令,也可以通过其他app发送过去

scp ./clutch【路径视自己clutch路径而定】 root@x.x.x.x:/usr/bin 【视自己手机IP而定】

或者直接使用第三方助手将clutch拖入到/usr/bin 路径下

四、连接设备,cd到clutch路径下

ssh root@x.x.x.x
cd /usr/bin

五、查看手机上的App

clutch -i

六、输入app前面对应的序号,开始砸壳

clutch -d 2

得到砸壳出来的iPA文件,导出到电脑上即可

![图片] (ios/resources/06641B83AB6B46C452111C6405509306.jpg)

这里就砸壳完毕。

四、Bfdecrypt(IOS)

Bfdecrypt是一个由level3tjg大佬编写的,在越狱环境下的自动砸壳插件,内置cy库的脚本,可以在设置中选择app进行操作。插件在嘻哈源内已上传(公众号回复”源地址“,即可添加源下载使用)。

打开手机设置,找到插件Bfdecrypt

![图片] (resources/D92DAD7B30D71D5A8A7C84A1802150A9)

继续进去选择app,打开开关

![图片] (resources/3E103B5FDCBD26050B61B96B3CCB7258)

这里以「百度翻译」为例;选中的app,每打开一次,都会砸壳一次。

![图片] (resources/C9E4333E7DF562069839D607FB925A85)

砸壳结束以后会显示这样。

![图片] (resources/BFFBBE321162D5FDBD38D76CEB657F56)

这样就是解密完成,剩下的就是怎么导出。

方法一:上面的几个ip利用共享模式进行导出,

方法二:ipa文件在砸壳应用的用户存档路径,可以借助插件Filza直接找到;通过第三方app或者电脑助手导出。(比如:Apptools,直接选择打开文档目录,会自动打开Filza,并且跳转到相应的目录,打开Documonts,就看到了Decrypted-app.ipa就是砸壳好的ipa)

![图片] (resources/0C33A1F151A79ADE748B450BC4160BD0)

![图片] (resources/366319828B6AB3DFE7CE218B3739CB70)

![图片] (resources/9EE574C30116863025FD34F4C5B83BF3)

呐,这就好了。

五、CrackerXI+(IOS)

CrackerXI+是一个由c0pyn1nja大佬编写的,在越狱环境下的自动砸壳插件终端,智能化的优化砸壳ipa。嘻哈源内已上传(公众号回复”源地址“,即可添加源下载使用)并且区分了越狱版本,Elecrta/Chimera一个版本,其他越狱一个版本。

涉及到App类终端,国行手机在IOS9+有一个网络权限限制问题,如果安装后打开闪退的,请先修复网络问题。

![图片] (resources/ECC82153D6655DD9DDB9707DF81ABA57)

使用此工具砸壳前,要先配置。如图

![图片] (resources/6AD215CFD9CC29C876629EBDB6D0E4F7)

①CrackerXI Hook,开启后才能进行解密;②Cracker Name,可设可不设,主要是针对ipa独立命名,仅此而已;③Remove UISupportedDevices,移除设备支持,方便于后期二次重签使用。此处牵扯较多,比如Info.plist;④Set Minimum iOS version 10.0,设置砸壳后的ipa,限制最低IOS10.0系统使用;⑤Remove Watch App,移除Watch的支持框架。多用于防止重签出错。

如何使用-图文教程

设置完毕以后,

点击Applist,

选择要砸壳的app名称。

视频以「腾讯视频」为例,

点击「YES」,

此时会跳转指定的App,

点击「Yes,I want to...」

此时出现Decrypting,正在解密中....

稍后返回CrackerXI

此时出现Processing IPA,处理打包IPA中,

最终出现Success,表示完成。如图

![图片] (resources/18B52962AE7F7B5268B0D2EEE2AD102E)

ipa目录最终在

/var/mobile/Documents/Crackerxi/