起因:最近PP助手倒闭了,再也不能下载砸过壳的APP;其次,也想尝一尝,越过狱的苹果手机香不香
<一>越狱篇
于是这篇文章的主角就开始登场了
下载这个"checkra1n",我搜索的时候有 0.9.8 和0.10.0两个版本,0.10.0的我试了没成功,又下了个低版本的,最后越狱成功.从上图可以看到我用的是6Plus,iOS版本是12.4.6,当前最新的. 点击Start,按照它的指引一步步操作,最后手机会自行重启,你的手机上也出现这个APP,点击它,下载Cydia,如果你能正常下载Cydia,证明你已经越狱成功.
有人问Cydia是干嘛的,我理解就是:山寨的AppStore;在里面你可以下载一些应用.
这个版本的越狱都是不完美越狱,就是说,当你重启手机后,你的手机又变成未越狱的状态了,又需要重新再整一遍.以前运气好,直接能下载下来,这次越狱一直卡在下载Cydia的界面,总是卡在The Request TimeOut,(我的理解:它应该是连接的某个外网,导致下载速度很慢,类似于你从GitHub下载代码一样,速度简直是拉稀一样),于是百度一番,找到了一个解决办法:
(1)在AppStore下载一个 "奇游加速器" ,
就是这个东西,然后选择一个叫"天堂2"的游戏(这个步骤百度的),加速它
(2)然后再到手机上的checkra1n下载Cydia,大约十几秒,下载完成后你的手机又会多一个Cydia的程序,
(3)在Cydia里面下载几个必备软件,
1>Apple File Conduit "2",
2> AppSync Unified,
3>Open SSH
第一个是让你能够通过MAC上的iFunBox以文件夹的形式访问手机上的资源,
第二个可以绕过系统验证,随意安装、运行破解的ipa安装包.(AppSync Unified 直接搜索不到,这里提供一个软件源cydia.angelxwind.net,亲测有效),
第三个是通过手机USB连接你的电脑.......接下来就可以愉快玩耍了.
<二>连接篇
原理介绍: AppStore上架的App都是加过密的(也就是加壳),防止某些人瞎搞,正常下载的App在手机里都是需要解密(破壳).导出未加密的App,就是利用这个原理,直接将运行的App从内存导出来,执行一些脚本,直接给你一个.ipa的包,
(1)通过USB线连接你的手机,这里需要从GitHub下载一个小工具:usbmuxd,里面有一个tcprelay.py的python脚本(看命名应该是TCP协议之类的),
(2)打开终端到tcprelay.py所在文件夹下,执行这句代码:"python /tcprelay.py -t 22:10010"(意思是将MAC本地的10010端口映射到手机的22端口,当你向本地10010端口写入数据的时候,就会传到手机的22端口,此时手机相当于远程服务器),
不要关闭这个端口,从新开一个终端,输入:"ssh root@192.168.0.103",后面的IP是你手机的地址,(需要输入初始密码,如果你没改过,统一为:"alpine"),结果如下图
也许你之前连接过,可能会有这样的报错---WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
因为我之前连接过手机,重新越狱之后会报这种错误,删掉/Users/a10.12/.ssh/文件夹下的key信息,重新 ssh root@192.168.0.103,就能搞定.
<三>砸壳篇
说明:砸壳主流的是两种常用工具 Clutch 和 dumpdecrypted,两种方法我都试了,现今第二种可行.
(1)iFunBox打开手机文件目录,找到usr/bin目录,将Clutch 放入,终端输入命令:"Clutch -i",列出手机安装应用(可能会遇到 Permission denied 报错,权限不足,输入:"chmod +x /usr/bin/Clutch",添加执行权限),
```
1: ofo共享单车-智能无桩好骑 <com.ofo.Bicycle>
2: 网易邮箱大师 <com.netease.mailmaster>
3: 闲鱼 - 闲置二手游起来 <com.taobao.fleamarket>
4: 懒人听书-热门有声小说相声评书 <com.yytingting.iting>
5: 微信 <com.yangpei.FakeWeChat>
6: 探探-超火爆社交App <com.yaymedialabs.putong>
7: 网易有道词典-收录日汉牛津等权威词典 <youdaoPro>
8: 转转二手交易网-一个帮你赚钱的网站 <com.wuba.zhuanzhuan>
9: 唱吧-手机KTV社交平台 <com.changba.ktv>
10: 美丽约 - 快速约见面 <com.jjdd.meiliyue>
11: 快手 <com.jiangjia.gif>
12: Mickey <com.disneyqh.Mickey>
13: Minnie <com.disneyqh.Minnie>
14: 酷狗音乐-就是歌多 <com.kugou.kugou1002>
15: 疯狂来往(疯狂猜词)-你演我猜聚会社交 <com.hortorgames.crazyguess>
16: 支付宝 - 让生活更简单 <com.alipay.iphoneclient>
17: 优酷视频-乡村爱情11全网独播 <com.youku.YouKu>
18: 高德地图-精准地图,导航出行必备 <com.autonavi.amap>
19: 微信 <com.yangpei.WeChat01>
20: 无他相机-拍好不用P <com.Benqumark.KuaiMeiKuaiZhuang>
21: 抖音短视频 <com.ss.iphone.ugc.Aweme>
```
比如要导出抖音 : "Clutch -d 21",报错了,Clutch 方式不可行
Error: Failed to dump <EffectSDK_iOSShell> with arch arm64
Error: Failed to dump <AgoraRtcEngineKit> with arch arm64
Error: Failed to dump <ByteRtcEngineKit> with arch arm64
2020-04-01 00:53:01.650 Clutch[3359:49962] failed operation :(
2020-04-01 00:53:01.651 Clutch[3359:49966] failed operation :(
2020-04-01 00:53:01.651 Clutch[3359:49966] application <NSOperationQueue: 0x100df2cc0>{name = 'NSOperationQueue 0x100df2cc0'}
Error: Failed to dump <ByteRtcEngineKit>
(2)用dumpdecrypted,Github搜索这个,编译运行之后,会生成一个dumpdecrypted.dylib动态库文件,将它放入手机的var/root文件夹下,
1>查看APP文件路径: "ps -A",会出现类似一堆这种文件
```
2475 ?? 0:53.48 /System/Library/CoreServices/SpringBoard.app/SpringBoard
2477 ?? 0:01.01 /usr/libexec/afc2d -S -L -d /
2484 ?? 0:37.28 /var/containers/Bundle/Application/DDA88A1F-F37A-499D-B254-863BCBAFCAA7/weTalk.app/WeChat
2498 ?? 0:00.12 /System/Library/PrivateFrameworks/CryptoTokenKit.framework/ctkd -tsw
2499 ?? 0:00.16 /System/Library/PrivateFrameworks/CryptoTokenKit.framework/PlugIns/setoken.appex/setoken
2503 ?? 0:03.32 /Applications/Preferences.app/Preferences
2504 ?? 0:01.88 /var/containers/Bundle/Application/8DBF0AAE-5227-4983-A713-01D47D30C35C/imeituan.app/imeitua
2515 ?? 0:01.18 /System/Library/PrivateFrameworks/AppPredictionWidget.framework/PlugIns/AppPredictionWidget.
2517 ?? 0:00.81 /private/var/containers/Bundle/Application/EAD0558A-D23F-41BA-B5F3-81119618E14D/Weather.app/
2518 ?? 0:01.20 /System/Library/PrivateFrameworks/RemoteManagement.framework/Daemons/remotemanagementd
2520 ?? 0:00.53 /System/Library/PrivateFrameworks/UsageTracking.framework/UsageTrackingAgent
3340 ?? 0:58.07 /var/containers/Bundle/Application/85B00CA9-B334-48E6-8068-415786ABB3FF/Aweme.app/Aweme
```
2>紧接着DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib "你需要砸壳的应用路径",我以抖音为例,结果如下:
3>完成后你就可以在var/root/文件夹下发现一个Aweme.decrypted文件,这个就是砸完壳的抖音,
4>//查看是否加密 otool -l Aweme.decrypted | grep crypt
cryptid == 0 ,证明是砸过壳的
**导出头文件**: class-dump -H Calculator -o CalculatorHeader;Calculator为mach-o文件名,CalculatorHeader为导入到的文件夹名
**恢复方法符号表**: restore-symbol Runner_arm64 -o Runner
**导出某种特定架构**:lipo 文件路径 -thin 架构类型 -output 输出文件路径
**生成cpp代码 **:xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc MJPerson.m -o MJPerson.cpp
**查看文件架构类型**: file putong.decrypted;putong.decrypted为mach-o文件名
**恢复block符号表**: restore-symbol WeiChat -o WeChat_block -j block_symbol.json;WeiChat为mach-o文件,WeChat_block是执行完成的文件名block_symbol.json是通过IDA/Hooper执行脚本之后生成的所有block的json文件.