很久没有发文章了,最近沉迷逆向无法自拔,开始写点东西做个小总结吧,后续慢慢更新吧,全当记录,共同学习。
方法一、frida
frida是一个利器,除了砸壳还有很多作用,不仅在iOS上用处很大,在Android上更加厉害,想进一步了解的可以自行搜索研究。
步骤1、终端执行命令安装frida
sudo pip install frida 【这里是Python API binding】
sudo pip install frida-tools 【这里是frida 命令行工具】
二者缺一不可,这是2018年07月12日最新版本的frida上述方法已废弃
pip3 install frida 【这里是Python API binding】
pip3 install frida-tools 【这里是frida 命令行工具】
2020年8月24更新
步骤2、在大神这里下载砸壳的脚本,然后cd到目录中【前面链接是python2的脚本,这里是大神python3的脚本】
【2020年8月24更新:直接用python3的脚本】
sudo pip install -r ./requirements.txt --upgrade 【这里是安装脚本中依赖的库,./requirements.txt路径根据自己的文件路径修改】sudo pip install -r ./requirements.txt
如果你的设备连接密码做了修改需要在目录中的dump.py里面将Password改成你设置的密码。
步骤3、设置手机端口连接
iproxy 2222 22
步骤4、再打开一个电脑命令行终端,新建一个文件夹,cd进去,准备接受要砸壳出来的iPA文件
步骤5、将dump.py脚本拖入命令行终端,在后面输入要砸壳的App名称或者bundleID
./dump.py QQ 【./dump.py路径根据自己的文件路径修改】
即可拿到砸壳出来的iPA文件了。
【注:手机上需要砸壳的App要运行起来】
另外一个大神这里有更加简便的方法,但是我没来得及尝试,各位有兴趣可以去研究研究。
方法二、Clutch
Clutch是一个比较经典的砸壳工具了,但是由于很多App都不能砸壳成功导致用户逐渐减少,但是也可以拿来一用。
步骤1、下载clutch源码
步骤2、编译工程生成clutch执行文件
步骤3、将clutch执行文件拷贝到手机里
可以使用命令
scp ./clutch【路径视自己clutch路径而定】 root@192.168.188.9:/usr/bin 【视自己手机IP而定】
或者直接使用第三方助手将clutch拖入到/usr/bin 路径下
步骤4、连接设备,cd到clutch路径下
ssh root@192.168.188.9
cd /usr/bin
步骤5、查看手机上的App
clutch -i
步骤6、输入app前面对应的序号,开始砸壳
clutch -d 2
得到砸壳出来的iPA文件,导出到电脑上即可
方法三、dumpdecrypted
这个方法砸壳App不会生成iPA文件,生成的是decrypted后缀的文件。
步骤1、下载dumpdecrypted
步骤2、终端输入cd到下载的目录,再输入make得到dumpdecrypted.dylib文件
步骤3、连接设备
ssh root@192.168.188.9
步骤4、寻找要砸壳的App
ps -e 【得到所有手机运行的app进程】
得到路径,先做保存,之后有用
1890 ?? 0:14.42 /var/mobile/Containers/Bundle/Application/CBE24EFB-D045-4F10-ACB5-7E7B0794C5E9/WeChat.app/WeChat
步骤5、进入到进程中
cycript -p 1890
[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
/var/mobile/Containers/Data/Application/A28D18B7-37FF-43D9-B1F0-E6E0EAD5794A/Documents/
得到路径,先做保存,之后有用
步骤6、退出手机连接,注入动态库
scp ./dumpdecrypted.dylib root@192.168.188.9:/var/mobile/Containers/Data/Application/A28D18B7-37FF-43D9-B1F0-E6E0EAD5794A/Documents/
第一个是dumpdecrypted.dylib路径,第二个是第二步得到的路径
步骤7、再次连接设备砸壳
ssh root@192.168.188.9
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
【后面参数是第一步得到的路径】
步骤8、导出得到的decrypted后缀文件
scp root@192.168.188.9:/var/mobile/Containers/Data/Application/A28D18B7-37FF-43D9-B1F0-E6E0EAD5794A/Documents/WeChat.decrypted /Users/bean/Desktop/decrypted
【第一个参数是第二步得到的路径,第二个参数是电脑桌面路径】
也可以使用第三方助手直接找到路径导出
检验一下自己的成果吧。
三种方式得到的文件,均可使用终端输入命令检测
otool -l xxx 【得到的可执行文件路径】
三个砸壳方法各有优劣,就目前来看frida更适合大多数的App,但是环境集成也更加复杂,工欲善其事,必先利其器,准备功夫都是必要的。
菜鸟走向大牛,大家共同前进,如果觉得不错,请给个赞/关注。
一起交流学习,有问题随时欢迎联系,邮箱:383708669@qq.com