ios12.1越狱记录+ipa脱壳

3,725 阅读4分钟

最近在研究一款iOS应用,iOS应用是ipa格式,但是逆向分析需要ipa脱壳,脱壳又需要越狱的手机(pp助手没有资源),之前没了解过iOS应用逆向,周末搞了下,记录下过程。

1.iOS越狱

机型:iphone6s 版本:iOS12.1 PC:mac

1.删除手机预下载系统更新固件(“设置”→“通用”→“iPhone 储存空间”,没有则跳过)

2.关闭系统更新,safari打开https://app.abcydia.com/config/pbjc.mobileconfig,安装并验证通过

3.安装unc0ver, safari打开https://unc0ver.dev,点击 Download OTA 安装并验证描述文件

4.越狱,打开unc0ver,点击Jailbreak,等待自动备份系统快照,自动重启;第二次打开unc0ver,这时还没有越狱成功,还显示Jailbreak,继续点击,等待越狱结束,自动重启;第三次打开unc0ver,出现了Re-Jailbreak以及桌面安装了Cydia,表示越狱成功(1.此时也只是半越狱,每次重启设备都需要重新打开unc0ver点击Jailbreak,如果是设备SpringBoard则不需要重复越狱;2.点击Settings的Restore RootFS(rec0ver)可恢复至越狱前快照状态(未测试)) 参考:www.jianshu.com/p/18d1b5ab9… www.sohu.com/a/297330181…

5.打开Cydia,国行默认连不上网,需要打开Cydia的联网开关,默认蜂窝和wifi里是看不到的(Cydia内连续打开关闭飞行模式,测试方法失败),电脑下载爱思助手,连接手机,搜索安装乐网,打开全局拦截,安装配置文件,成功后会连接vpn,此时打开Cydia,首页可加载了,增加一个新源:apt.abcydia.com,搜索安装conditionlwifi4(3),打开手机设置->软件列表->conditionlwifi4->打开Cydia联网开关,或者安装netfix插件,总之目的都是为了打开Cydia联网开关,可惜的是以上2种都没能让我打开Cydia联网,不过并不影响我使用Cydia通过国内的源下载插件

6.安装openSSH,由于上面连不到Cydia的官方源,下载不到openSSH,添加源:apt.binger.com,下载openSSH

7.安装CrackerXI(脱壳),1.多米诺骨牌源下载:apt.wxhbts.com(速度快,可能已下架)2.www.cydiacrawler.com网站下载:增加源 cydia.iphonecake.com

2.ipa脱壳

iOS12前可使用clutch、dumpdecrypted、frida-ios-dump脱壳 (参考:www.jianshu.com/p/1991854c6… ,注意dumpdecrypted的命令格式:DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib 路径 mach-o decryption dumper,同时需要使用和手机相同版本的SDK在PC编译dumpdecrypted.dylib),

iOS12后使用clutch、dumpdecrypted脱壳失败,frida-ios-dump未尝试,使用CrackerXI直接脱壳

1.打开CrackerXI,选择已安装的应用进行脱壳,等待,成功后显示脱壳后的ipa包在手机存储的位置,more:/var/mobile/Documents/CrackerXI/app名称_CrackerXI.ipa

2.打开手机openSSH,手机没安装openSSH,可直接使用爱思助手打开SSH通道(参考 blog.csdn.net/ycc15872296…

3.拷贝文件到本地,scp -r root@xxx.xxx.xxx.xxx:/var/mobile/Documents/CrackerXI/app名称_CrackerXI.ipa /tmp ,默认密码是alpine,ip通过手机wifi连接详情查看

4.用zip格式打开脱壳的ipa文件,查看加密情况:otool -l Payload/app名称.app/app名称 | grep crypt,cryptid 1代表加密,cryptid 0代表未加密。两个分别对应着armv7和arm64

3.Mach-O反编译 (Mach-O文件介绍

1.安装class-dump 参考 :www.jianshu.com/p/025fa775f…

2.获取.h文件,class-dump -H Payload/app名称.app -o /work,接下来可分析关键函数,参考:blog.csdn.net/weixin_3832…

3.安装Hopper Disassembler v4.0.8(破解版),打开patcher.app,将Hopper.app移到patcher里面即可破解

4.打开Hopper,选择File-Read Executable to Disassemble,打开二进制文件(app名称.app包下面的同名二进制文件),根据otool获取到的已解密的架构类型选择,打开后等待,最左侧显示全部函数,与.h文件对应,中间部分可选择if(b)f(x);将汇编转换为伪OC代码(包含寄存器信息),有些代码可能会有代码混淆。参考:www.jianshu.com/p/c04ac36c6…www.jianshu.com/p/384dc5bc1…

代码分析未完待续。。

5.Hook and monkeyDev github.com/AloneMonkey…www.jianshu.com/p/28eb7616f…www.lizenghai.com/archives/21…github.com/Urinx/iOSAp…

6.看雪iOS逆向学习

2019-09-15更新: 1.越狱后AppStore下载的游戏闪退问题解决方法:tieba.baidu.com/p/574053183… 添加源 ryleyangus.com/repo/,搜索liberty lite最新版屏蔽越狱检测插件,安装后注销手机在设置界面找到liberty,进去勾选对应app屏蔽越狱检测 2.重新越狱后可以在设置中找到ConditionalWifi4,可以打开wifi设置