iOS逆向工程之Reveal工具的安装、配置与使用

updatezhou 8年前
   <p>经常有小伙伴在QQ上私下问我,说博客中是如何使用Reveal查看AppStore中下载应用的UI层级的,那么就在今天这篇博客中作为一个主题来统一的介绍一下吧。虽然网上相关资料一抓一大把,不过还是有必要详细的总结一下的。</p>    <p>还是那句话,“工欲善其事,必先利其器”,在之前的多篇博客中不止一次用到这个强大的分析工具Reveal,之前我们用它来查看自己App以及从AppStore中下载的App的UI层级,效果都是非常不错的。 <strong>Reveal</strong> 在逆向工程中不仅仅是用来查看UI层级的,它可以帮你定位问题。比如举个简单的例子,假如你想在某个App的某个页面弹出一个Alter,那么Reveal会很轻松的帮你找到这个页面以及相关的类。</p>    <p>好了,废话少说,今天博客的主题就是如何在越狱环境下配置和使用Reveal来查看App的UI层级。Reveal for Mac版可以从Reveal官网上下载,不过只能试用30天。你也可以从网上直接下载破解版的Reveal。如果你想搞的有意思点,使用Hopper自己去破解官方的Reveal,网上有使用Hopper来修改Reveal汇编,破解Reveal的教程,亲试有效。 使用Hopper破解Reveal的不做请移步于“ <strong> <a href="/misc/goto?guid=4959714977458957692" rel="nofollow,noindex"> Reveal破解链接 </a> </strong> ” ,在当前最新版本 1.6.3是有效的 。本篇博客中所使用的 Reveal 1.6.3就是使用Hopper进行破解 。当然,这不是今天的主题,今天的主题是如何使用Reveal。</p>    <p>当然今天博客中所涉及的内容是在越狱手机上进行的,如何使用Reveal在未越狱的手机上查看你自己的App的UI层级,请自行 Google ,在此就不做过多赘述了。</p>    <h2><strong>一、在越狱设备上配置Reveal</strong></h2>    <p>下方的内容是基于越狱的设备操作的,设备的系统版本为 <strong>iOS9.2.1</strong> 越狱版。</p>    <p><strong>1. Reveal Loader安装</strong></p>    <p>首先我们打款越狱设备的 Cydia ,然后在搜索中输入 Reveal Loader ,并且进行安装即可,下方是安装后的效果。这一步比较简单,安装后重启 SpringBoard 即可。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/06984349192ca0ff759ca2c55fe63e42.png"></p>    <p><strong>2.导入libReveal.dylib</strong></p>    <p>这一步也是比较关键的一步,安装完上述的 <strong> Reveal Loader </strong> 后请查看是否有 <strong>/Library/RHRevealLoader</strong> 这个文件夹,并且确定该文件夹中是否有 <strong>libReveal.dylib</strong> 这个文件,如果有的话,请跳过这一步,如果没有,那么就往下看吧。</p>    <p>(1)操作越狱设备文件所需的工具</p>    <p>当然,本部分需要对越狱设备中的文件系统进行操作,并且将Mac上的文件夹导入到设备中。当然你可以使用 OpenSSH 来连接你的设备,但是要是将Mac中的文件导入到越狱设备相应的文件夹中,还是使用下方的可视化工具更直观一些。</p>    <p>下方是我本地装的两个工具,当然其中任何一个都可以操作iOS设备的文件系统,不过 iExplorer 这个工具的功能更强大一些。 iExplorer 可以查看你的Mac上所有iOS设备的备份文件,当然也包括非越狱设备的备份文件。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/3e781d095f99871e78800b3ffeae9142.png"></p>    <p>(2)libReveal.dylib</p>    <p>我们Mac上的Reveal自带了两个库,一个是 libReveal.dylib ,一个是 Reveal.framework 。在未越狱的设备上使用库是后者,本篇博客中使用的是前者。这两个文件位于Reveal中的iOS Library中。 Reveal菜单->Help->Show Reveal Library in Finder ->iOS Library 。通过上述目录就可以找到我们需要的文件,当然本篇博客中我们只需要 <strong> libReveal.dylib </strong> 这一个文件。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/debcb23eec0e1ad55f959b1cd8ff64f1.png"></p>    <p>找到上述的 <strong> libReveal.dylib </strong> 文件后,使用 <strong>IExplorer</strong> 拷到我们的设备中相应的目录下即可。如下所示。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/c6de2d2b45eb56539df629f6fb263e59.png"></p>    <p>至此,我们的 <strong>Reveal</strong> 配置工作就结束了,接下来就是使用 <strong>Reveal</strong> 来做一些事情了。</p>    <h2><strong>二、Reveal的使用</strong></h2>    <p><strong>1.在设备上选择可以Reveal的App</strong></p>    <p>我们在越狱设备上安装完 <strong>Reveal Loader</strong> 后就可以在设置中找到Reveal的配置项,在该配置项中我们可以去选择要Reveal的App, 当然对于越狱手机,手机上安装的所有App都可以Reveal。当然也包括从 <strong>AppStore</strong> 下载的,也包括iOS系统自带的。如下所示:</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/760d9da7f7697a4588466d5e2bfcb7e2.png"> <img src="https://simg.open-open.com/show/2a5cb4f1047d812b38dff00d970a7800.png"></p>    <p><strong>2.查看系统App"股市"的UI层级</strong></p>    <p>上面Reveal的配置工作就以及配置好了,接下来的时间就是Reveal的使用时间了。Mac上Reveal查看设备上App的UI层级时是不需要使用USB进行连接的,但要保证你的iOS设备与你的Mac在同一个局域网内。下方这个截图就是我在使用Reveal时的一个截图, DecoupleDemo on 呵呵(iOS 9.3.2) 这个设备是我一个同事的,当然他的手机是未越狱的设备,不过他的App中引入了Reveal.framework这个包,所以我在这边也是可以看到的。下方是我的越狱设备,当然这个“股市”App是iOS系统自带的App, 接下来就看一下如何去使用Reveal在越狱设备上来查看第三方App的UI层级。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/bc630c47f6476b1c2926d7c8e93b4359.png"></p>    <p>在上方截图中,我们点击下方的股市这条就可以Reveal“股市”这个App了。下方就是“股市”这App的UI层级图。</p>    <p><img src="https://simg.open-open.com/show/bd8c65779e603e99c9098d9a6c103e32.png"></p>    <p>经过上述步骤,Reveal就可以正常工作了,至于如何让Reveal的功能发挥到极致,那么还得看使用的人呢。今天博客就先到这儿。</p>    <p> </p>    <p>来自:http://www.cnblogs.com/ludashi/p/5717991.html</p>    <p> </p>