iOS Developer

15分钟iPhone越狱、IAP砸壳(最新)

2020-01-12  本文已影响0人  慕_風

前言

最近想要重温一下IAP砸壳的乐趣。找了一圈市面上现有的教程,发现很多已经过时了。按照教程已经无法成功砸壳。
然后自己探索出一套适合自己的方法。虽说不一定最好,但胜在亲测可用,在此与小伙伴们分享。

一、硬件设备

苹果手机:iPhone 6(iOS10.2)
Mac电脑:已安装爱思助手

二、越狱

本教程使用爱思助手对手机进行非完美越狱,重启手机后即回复为未越狱状态。

1、打开爱思助手,使用USB连接手机

直到爱思助手上出现你的手机屏幕,则连接成功。

2、使用爱思助手的一键越狱


按如上步骤操作即可。(如果你的iPhone版本与我的不同,请选择对应的版本越狱)



出现如上界面提示后,请按照提示在手机上操作。等待手机自动重启成功后,越狱就成功了。

三、对微信进行砸壳

1、ssh连接iPhone

在很多教程中都介绍说需要下载OpenSSH插件,通过同一个Wifi来连接iPhone。但是这个方法我自己尝试过几次均没有成功。而且在高于iOS10以上的版本似乎已经不需要下载OpenSSH了。

下面介绍我推荐的方法,无需下载额外的插件。

a、打开爱思助手->工具箱:



b、点击爱思助手提供的【打开SSH通道】工具。



如果出现如上弹窗,则表示SSH通道打开成功。先不要关闭这个弹窗,我们后面会用到其中的信息。

c、打开命令行工具【如:Terminal】,在命令行工具中输入:

ssh root@127.0.0.1 -p 1025

回车后,会让你输入密码。因为我们没有修改ssh的密码,所以我们直接使用爱思助手给我们的默认密码:alpine

出现如上界面,则表示ssh已经连接成功了。

2、对微信APP砸壳

将手机上的APP从后台全部关闭,避免其他APP对我们的干扰。然后打开微信APP。

a、在命令行中输入如下命令:

ps -e|grep WeChat

这句命令是查看某个应用的进程,然后终端就会输出这个应用二进制文件对应的目录。


这样我们就获取到了微信二进制文件对应的目录:/var/containers/Bundle/Application/43C7E414-F502-479E-AAC7-3A1623EB2BDE/WeChat.app/WeChat

b、需要用Cycript找出微信的Documents的路径
在命令行工具中输入命令:

cycript -p WeChat

在 cy# 后面继续输入命令:

NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]

我们需要查找的微信的Documents目录便得到了:/var/mobile/Containers/Data/Application/137EB4E4-0E30-4C8D-9B33-BBB508119E6B/Documents

这个目录在中的137EB4E4-0E30-4C8D-9B33-BBB508119E6B在每个手机上都不一样,大家不用在意,只要目录格式一致即可。

获取到这两个目录后,我们就可以开始砸壳了。我们使用control+D退出 cy#,方便后续输入命令。

3、准备砸壳工具dumpdecrypted.dylib

很多教程中使用的砸壳工具都是来自stefanesser的GitHub:https://github.com/stefanesser/dumpdecrypted

但是很遗憾,这个代码已经很多年没有维护了,我通过这个工具没有成功。所有我提供了新的dumpdecrypted.dylib工具。请小伙伴们自行下载。

本教程中,我将dumpdecrypted.dylib文件放在桌面的dump文件夹下。

新打开一个命令行工具窗口,cd到dumpdecrypted.dylib工具所在的目录:


使用scp命令拷贝dumpdecrypted.dylib到iPhone设备中。

我们把dumpdecrypted.dylib放在iPhone设置的/usr/lib目录下,方便我们使用。也可以放入微信的Documents目录(/var/mobile/Containers/Data/Application/137EB4E4-0E30-4C8D-9B33-BBB508119E6B/Documents)中。

在命令行中输入如下命令:

scp -P 1025 ./dumpdecrypted.dylib root@127.0.0.1:/usr/lib

小伙伴们请注意,这里的 -P 是大写。回车后需要输入ssh默认密码alpine

如果出现如下界面,则表示拷贝已经成功了。


如果有的小伙伴出现出现的界面不一样,而是出现了下面的界面,也不要惊慌。


这是因为你的设备中没有ssh命令scp。这时候你只需要在越狱后出现的Cydia中搜索安装【OpenSSH】,在重复如上命令即可。

4、砸壳

砸壳工具已经准备好了,我们就可以挥舞起我们手中的小锤锤开始砸壳了。

在连接设备的命令行中输入如下命令:

DYLD_INSERT_LIBRARIES=/usr/lib/dumpdecrypted.dylib /var/containers/Bundle/Application/43C7E414-F502-479E-AAC7-3A1623EB2BDE/WeChat.app/WeChat
注释:
/usr/lib/dumpdecrypted.dylib:是你砸壳工具dumpdecrypted.dylib放置的路径

/var/containers/Bundle/Application/43C7E414-F502-479E-AAC7-3A1623EB2BDE/WeChat.app/WeChat:是微信二进制文件对应的目录

然后你会出现如下界面:


咦,不是说好的砸壳吗?怎么会出现这样的报错呢?是我们的锤子挥得不好吗?

并不是哈,请注意看报错信息 “required code signature missing”,说明我们这个砸壳工具dumpdecrypted.dylib是缺少签名的。这是我给小伙伴们留的坑哦,不来点意外,你们怎么能印象深刻呢?

5、签名dumpdecrypted.dylib

a、我们先查看我们电脑上有哪些可签名的证书。
输入如下命令:

security find-identity -v -p codesigning

查看你是否有可签名证书,没有的小伙伴赶紧去苹果开发者网站注册吧。

b、选择合适的证书为dumpecrypted.dylib签名
输入如下命令:

codesign --force --verify --verbose --sign "iPhone Developer: xxx xxxx (xxxxxxxxxx)" dumpdecrypted.dylib
注释:
"iPhone Developer: xxx xxxx (xxxxxxxxxx)" 是你可签名证书中的证书名称

如上图所示,我就选择了列表中的第23个作为dumpecrypted.dylib签名的证书。

6、重新上传签名后的dumpecrypted.dylib

a、先将iPhone设备中未签名的dumpecrypted.dylib移除。
cd到/usr/lib目录下:
执行如下命令:

rm dumpecrypted.dylib 

之后再cd到根目录。

b、使用scp命令上传签名后的dumpecrypted.dylib
在命令行中输入如下命令:

scp -P 1025 ./dumpdecrypted.dylib root@127.0.0.1:/usr/lib

输入密码后完成上传。

7、砸壳--最终一锤

使用步骤4中的命令完成最后的挥锤动作,砸壳微信APP的壳。


出现如上界面,则表示砸壳成功。完美,perfect!!!

并且红框中的WeChat.decrypted文件,即是我们砸壳后的微信二进制文件。其所在目录就是root目录,直接输入ls命令,则能在当前目录找到。


四、对砸壳后的APP进行反编译,获取头文件

1、将砸壳后的二进制文件导出到Mac

我们使用scp命令导出文件到Mac的/Desktop/dump目录下
输入如下命令:

scp -P 1025 root@127.0.0.1:WeChat.decrypted ./

你也可以将文件放置在其他目录下,只需给出正确的路径即可。

2、使用class-dump工具反编译

还没有安装class-dump的小伙伴需要下载安装class-dump,已下载的则可以直接使用。

在桌面新建文件夹Headers,用于存放导出的头文件。小伙伴们也可以自行选择存放的目录。

在二进制文件WeChat.decrypted所在的目录下,输入如下命令:

class-dump -S -s -H ./WeChat.decrypted  -o 放置导出的头文件的目录

待命令执行完成后,即可在Headers文件夹中,查看从微信APP反编译出的所有头文件。


到这里,本教程就结束了。

欢迎觉得本教程还不错的小伙伴给我来一个点赞指教😁😁😁。

上一篇下一篇

猜你喜欢

热点阅读