iOS 逆向编程(十八)Reveal 详细安装(以及安装问题解决)

4,202 阅读5分钟

一、Reveal 简介

  • RevealMac OS X 平台上的一款方便开发者调试 iOS 应用的开发软件,Reveal 能够在运行时调试和修改 iOS 应用程序。 Reveal 能连接到应用程序,并允许开发者编辑各种用户界面参数,而且会立即反应在程序的 UI 上。

  • 开发者要将 应用程序Reveal 安装的框架层关联。Reveal 会扫描其网络中关联的应用程序,并让开发者选择连接其中之一,当连接到一个应用程序后,Reveal 将显示其 UI,其中包括大量的参数和设置。开发人员现在可以检查UI或者更改设置,直到用户界面的外观和行为达到预期目标。Reveal 可以和 iOS 模拟器一起使用,也可以用在运行在真机上的应用程序上。另外,Reveal 的安装只需几分钟。

  • 除了解析出UI参数外,Reveal 也会通过一个分解的 3D 视图显示复杂的 UI 层次结构。开发者可以轻松的检查UI组件的分层,并在其层次结构中选择特定元素。为了进一步简化调试,也可以仅关注部分 UI,而把其余部分屏蔽起来。

  • 建议下载 Reveal 4 或以上版本,因为支持 USB 连接调试,速度快,低版本的只能 WiFi 连接调试。

二、Reveal 安装配置环境

1、电脑端:Reveal 有免费试用期,可以下载体验一下:Reveal 下载地址,下载解压出来即可打开使用,填一下邮箱,然后给你邮箱发一个体验激活码,试用期 14 天。

2、越狱手机端:通过 Cydia 安装一下 Reveal Loader,不需要添加其他源地址,默认 BigBoss 源中就存在这个插件,Reveal Loader 这个插件已经很久没有维护了,用还是可以用的,但是推荐使用 Reveal2Loader

  • 安装成功之后,它是插件,所以不会出现在 APP 列表,而是在设置里面。

  • 点击 Reveal,进来之后,Enabled Applications 管理是否允许调试某些 APP 的,Avaliable Extensions 是管理扩展的,下面内容是作者的一些版权声明,我们需要进入 Enabled Applications 打开允许调试的 APP

  • 进来之后这里会列出手机上已存在的所有 APP,后面按个开关打开就是相当于允许通过 Reveal 调试这个 APP,不打开就是不允许,所以全部打开也是可以的,默认应该是不打开的。

3、上面两部安装好之后,现在就可以打开 MAC 电脑上的 Reveal 软件,重启一下手机上需要监控 APP,电脑上 Reveal 就会显示出来你打开的软件,自己看图标,一个是 USB 连接,一个是 Wifi 连接,Wifi 连接需要电脑与手机保持在一个 Wifi 环境。

4、当你点击其中一个区连接的时候,会弹出提示框,说你电脑端的 Reveal Library 与手机上的不一致,是旧版的,这个时候就需要将 MAC 端的 Reveal Library 覆盖一下手机上的,点击 Show Reveal Library in Finder

  • 也可以通过 Help -> Show Reveal Library in Finder 进入

    • 新版 Reveal:

    • 老版 Reveal:

  • 但是新版进来之后,如果你不是很熟悉,你根本不知道用哪个文件里面的 RevealServer.framework,老版本进来就一个文件,新版本现在有多个文件夹。

    • 新版 Reveal:

    • 老版 Reveal:(上面的云盘链接就是老版 Reveal,可用直接使用)

  • (新版 Reveal)我们使用 ios-arm64_armv7 这个文件夹里面的,那个 ios-arm64_i386_x86_64-simulator 文件夹一看就是针对模拟器的,所以我们用不到,拖进去也是无法使用的。

  • 将这个 RevealServer.framework 拷贝到手机端,拷贝到手机哪个文件呢,这里有两种方式(我这边是 方式二 的情况):

    • 方式一:有的版本会有 /Library/RHRevealLoader 这个文件夹,如果有的话,打开看看里面是否有 RevealServer 这个文件

      如果有,这里就不是将 RevealServer.framework 拷贝进去,而是将 RevealServer.framework 里面的 RevealServer 拷贝进去

      可以通过 命令行 或者 iFunBox 拷贝到 /Library/RHRevealLoader 这个文件夹,拷贝进去之后就成功了。

    • 方式二:但是有的版本是没有 /Library/RHRevealLoader 这个文件夹,那就找到 /Library/Frameworks 这个文件夹,可以打开看看里面是否有 RevealServer.framework 这个文件

      如果有,这个是老的,我们需要替换一下它,这个时候我们就可以将刚才 MAC 电脑端拿到的 RevealServer.framework 拷贝到这个文件夹进行覆盖了就可以了

      可以通过 命令行 或者 iFunBox 的方式覆盖,命令行前面的文章有教程怎么拷贝。

  • 通过上面两种导入方式,根据情况选一种导入成功之后,需要重启你手机上允许 Reveal 监听的 APP,然后电脑端的 Reveal 就会出来打开的 APP,点击进去即可,推荐 USB 方式,点击进去之后,就不会在弹窗提示 Reveal Library 版本问题了,等下一小会就会显示出来这个 APP 的图层。

  • 细节问题:如果出现闪退或者别的问题,有可能是你没有用对 RevealServer.framework 或者 文件位置没有存放正确,也有可能需要 重启手机 或者 重启SpringBoard,重启会重载,非完美越狱 重启SpringBoard 就行了,效果差不多一样的。

    • 命令操作需要连接手机,重启手机可以直接按键操作。
    • 重启SpringBoard$ killall SpringBoard
    • 重启手机$ reboot