首页 > 代码库 > iOS 10越狱和Reveal 7分析三方App UI框架教程

iOS 10越狱和Reveal 7分析三方App UI框架教程

前言

这是一篇写给开发者的博客,如果碰巧非开发者搜到了这篇博客,那么博客的内容可能不适合你。

其实网上Reveal的教程很多,但是很多都是停留在Reveal 1或者Reveal 2时代的博客,不太适合最新版本的Reveal 7,所以还是决定写这样一篇文章。

本文最终的效果:

淘宝首页:

技术分享

  • 可以看到,淘宝首页其实就是一个巨大的CollectionView

京东首页:

技术分享

  • 可以看到,京东首页其实就是一个巨大的TableView

越狱

准备工作:

  • 一台待越狱的设备(10.3系统以下),最好用测试机或者淘汰下来的设备越狱,越狱前关闭设备的密码,做好数据备份。
  • XCode

笔者的设备是iphone 5s(10.0.2), XCode 8.3

步骤

  • 下载开源项目yalu102,并用XCode打开。
  • 下载IOKitHeaders,并且把头文件拖拽到上一步打开的XCode项目中,注意选中Copy。下载地址
  • 修改jailbreak.m中的#import <IOKit/IOKitlib.h>#import "IOKitLib.h"
  • 修改Bundle identifier, 连接iphone运行项目。发现多安装了一个App名称为“yalu102”
  • 打开yalu102,点击Go开始越狱。越狱成功后,桌面程序会重启,然后会发现多个一个Cydia的App,越狱成功。

技术分享


配置本文需要的环境

安装OpenSSH,方便我们把mac上的文件拷贝到手机

  • 在Cydia中搜索OpenSSH,点击安装。

技术分享

通过USB进行SSH

可以通过Wifi进行SSH,不过USB进行SSH的话,速度更快,所以本文采用USB的方式。

  • 安装homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/  install/master/install)
  • 安装libimobiledevice
brew install libimobiledevice

如果失败,执行brew link --overwrite libusb,后再执行brew install libimobiledevice

  • 然后检查iproxy是否安装成功
ls /usr/local/bin/ | grep iproxy 

如果有grep不是空的,说明安装成功。

  • 然后,桌面新建一个plist,命名为com.usbmux.iproxy.plist,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.usbmux.iproxy</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/iproxy</string>
        <string>2222</string>
        <string>22</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist
  • 给这个plist执行权限
cd ~/Desktop
chmod +x com.usbmux.iproxy.plist
  • 右键finder,选择前往文件夹,然后输入
~/Library/LaunchAgents
  • 把刚刚桌面上的com.usbmux.iproxy.plist,拖拽到LaunchAgents文件夹下。启动这个proxy
launchctl load ~/Library/LaunchAgents/com.usbmux.iproxy.plist
  • 接着,在终端输入
ssh root@localhost -p 2222
  • 会提示输入密码
192:~ Leo$ ssh root@localhost -p 2222
root@localhost‘s password: *

默认密码:alpine

显示xxxxx-iPhone:~ root#,则表示ssh环境配置成功。


安装cyberduck

cyberduck可以让我们通过拖拽的方式把mac上的文件拷贝到ios设备。

  • 官网下载cyberduck,下载完成后,解压缩,拖拽到应用目录

  • 启动cyberduck,点击新建连接,选择SFTP(SSH),然后按照图中的方式填写。注意默认密码和上文一样,都是alpine

技术分享

  • 点击连接,看到下图表示SSH成功。点击图中的部分,可以回到根目录。

技术分享


安装Reveal

  • 从官网下载Reveal,本文下载当前最新的版本Reveal 7(试用版需要先填写email信息,然后获得试用key).下载完成后,将reveal拖拽到应用目录,然后执行Reveal。这时候如图:

技术分享


最后的步骤

通过前文的准备,我们可以把文件拷贝到越狱的手机,MAC上我们也有Reveal了。接下来就是最后的,也是比较关键的步骤。

  • 安装Reveal2Loader(注意不是RevealLoader,那个源版本太老了)。在cydia中,搜索Reveal2Loader,然后安装。

如果安装失败,在软件源中点击编辑->删除BigBoss。接着点击Tabbar上的Cydia -> 更多软件源重新安装BigBoss(比较慢).再试着安装Reveal2Loader

技术分享

  • 安装Reveal2Loader成功后,在设置中会多一个Reveal选项,进入然后选择Enable Applications,这里是你想要用Reveal分析的App。比如我选择打开手机淘宝。

技术分享技术分享

然后,运行淘宝,你会发现Reveal中有提示了,如果没有提示,尝试关闭淘宝,重新启动。

技术分享

到这里,如果提示链接的Framework版本过低,那么我们需要把最新的Framework拷贝到手机上。

  • 点击Reveal的菜单栏中的Help,然后按照图中方式打开对应的framework路径。

技术分享

  • 用上文的cyberduck SSH到iOS 设备上,然后进入/Library/Frameworks,删除当前目录下的RevealServer.framework(注意别删错了)

!!!!iOS设备上删文件一定要慎重,不要动系统的文件,当心白苹果。

技术分享

接着,按照图中的方式,把RevealServer.framework拖拽到/Library/Frameworks下。

技术分享

然后,终端SSH到iOS设备,执行以下命令,重启SpringBoard即可。

killall SpringBoard

声明

本博客所有文章仅为个人观点,与雇主没有任何关系。如要转载,请征求作者同意。

<script type="text/javascript"> $(function () { $(‘pre.prettyprint code‘).each(function () { var lines = $(this).text().split(‘\n‘).length; var $numbering = $(‘
    ‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); }); </script>

    iOS 10越狱和Reveal 7分析三方App UI框架教程