iOS开发利器Reveal查看任意app 的界面

前言:

为什么要用Reveal

Reveal是一个界面调试工具。使用Reveal,我们可以在iOS开发时动态地查看和修改应用程序的界面。同时我们可以利用Reveal查看其他任意app,是学习iOS界面布局的利器。比较遗憾的是,iOS系统的限制,需要越狱才能实现查看。而且越狱也是一个技术活,需要注意的细节很多,各位小伙伴要有耐心。

一.流程概览

iOS开发利器Reveal查看任意app 的界面_第1张图片
iOS 逆向 Reveal

二.iOS设备越狱

1.越狱iOS设备

越狱的方式不算多,PP助手、爱思助手,本人用了这两款,傻瓜式操作,一键越狱,各位可Google具体操作。目前是非完美越狱,每次重启都需要重新激活。

2.越狱后会安装Cydia,而且不能卸载


iOS开发利器Reveal查看任意app 的界面_第2张图片
Cydia


打开Cydia,搜索CydiaSubstrate并安装,这里先不要安装OpenSSH,不然后面SSH无法连接到设备。CydiaSubstrate是一个框架,允许第三方的开发者在系统的方法里打一些运行时补丁,扩展一些方法。只有安装了CydiaSubstrate才会有下面要用到的目录,/Library/MobileSubstrate/DinamicLibraries。

二.安装Reveal

1.配置libReveal.plist及提取libReveal.dylib

具体方法相信大家都会了,本人安装的是1.6.3版本。安装后需要从中提取libReveal.dylib文件。方法如下图:

iOS开发利器Reveal查看任意app 的界面_第3张图片
libReveal.dylib

为了方便操作,本人在桌面建了一个reveal文件夹,并把libReveal.dylib放到该文件夹备用。

接下来需要准备一个libReveal.plist文件。别担心,这个文件配置很简单,一睹芳容如下图:


iOS开发利器Reveal查看任意app 的界面_第4张图片
libReveal.plist

这里是微信和网易严选的BundleID,个人特别喜欢网易严选,准备好好学习下,所以就获取了严选的BundleID。后续有机会我会写下网易严选的布局分析。这里大伙儿可以先直接用本人的配置,我会放出来供大家下载。而如何获取APP的BundleID,各位可以自行Google。同样我把libReveal.plist放到桌面的reveal文件夹下。

2.将libReveal.plist、libReveal.dylib上传到iOS设备

这里先不要上传,需要第三部连接到设备才行。

三.通过WIFI进行SSH连接

p小心,这里有好几个小坑。

首先在 Cydia 中搜索 Filza 并安装,(也说可以在电脑端安装 iFunBox 工具,但是我安装了无法查看到文件,所有推荐安装Filza,亲测有效)。此步骤的主要目的是为了修改越狱工具中的一个文件。

①用Filza打开手机端的yalu102.app

②直接双击打开dropbear.plist文件。

③替换127.0.0.1:2222

ps:找不到yalu102.app吗?该文件可能在/private/var/containers/Bundle/Application/yalu102/yalu102.app/  也可能在/private/var/containers/Bundle/Application/越狱助手/yalu102.app/  本人推测应该就是你安装的软件显明名路径下面。如本人就在越狱助手目录下面。

④重启设备

ps:卸载OpenSSH ,已经安装过的可以先卸载掉。不然无法通过 WIFI 进行 SSH 连接

⑤重启后可以愉快的连接你的iOS设备了,这里不用USB连接

连接方法:ssh root@<#iPhone IP Address#>

默认密码:alpine

保证电脑网络和iOS设备在同一局域网,比如本人的IP如下:


iOS开发利器Reveal查看任意app 的界面_第5张图片
IP

~ssh [email protected]

[email protected]'s password:

weide-iPhone:~ root#

这里强烈建议大家修改默认密码。

修改密码-->依次在终端输入:su root 

然后按提示输入当前密码 passwd

输入新密码

四.将libReveal.plist、libReveal.dylib上传到iOS设备

这里打开Terminal,cd到桌面的reveal文件夹,执行下面的命令

scp libReveal.plist root@<手机端IP>:/Library/MobileSubstrate/DynamicLibraries/

scp libReveal.dylib root@<手机端IP>:/Library/MobileSubstrate/DynamicLibraries/

不过这里可能遇到sh: scp: command not found,注意这里是还没有通过Cydia安装,让我们来梳理一下目前的情况。现在可以通过WIFI进行SSH连接了,然后我们需要上传libReveal.plist和libReveal.dylib到设备的/Library/MobileSubstrate/DynamicLibraries/目录。

这里可能有两个问题:①sh: scp: command not found;②/Library/MobileSubstrate/DynamicLibraries/目录不存在。

第一个问题在Cydia上安装OpenSSH就可以了,注意安装了不要重启,重启之后就无法通过WIFI进行SSH连接了。

第二个问题,你通过Filza查看手机目录,其实是存在的,只是命令cd 到Library下看不到而已。

现在执行上面的命令应该成功了。

接下来继续保持手机是通过WIFI进行SSH连接状态,启动Reveal,打开微信或者网易严选


iOS开发利器Reveal查看任意app 的界面_第6张图片
success


五.简单总结下

①越狱,通过Cydia安装CydiaSubstrate,产生/Library/MobileSubstrate/DynamicLibraries/目录

②安装Reveal,配置libReveal.plist、提交libReveal.dylib

③通过WIFI进行SSH连接,安装OpenSSHscp上面的两文件到/Library/MobileSubstrate/DynamicLibraries/目录

④打开Reveal,iOS设备运行对应的APP

本文主要参考了下面文章,特此感谢

https://www.xiaolei0808.com/2017/03/15/iOS10-0-10-2jailbreak/

https://hurui.gitbooks.io/reveal-debug/content/viewOtherApp.html

http://www.jianshu.com/p/060745d5ecc2

你可能感兴趣的:(iOS开发利器Reveal查看任意app 的界面)