今天博客內容比較簡單,不過還是蠻重要的。經常有小伙伴在QQ上私下問我,說博客中是如何使用Reveal查看AppStore中下載應用的UI層級的,那麼就在今天這篇博客中作為一個主題來統一的介紹一下吧。雖然網上相關資料一抓一大把,不過還是有必要詳細的總結一下的。
還是那句話,“工欲善其事,必先利其器”,在之前的多篇博客中不止一次用到這個強大的分析工具Reveal,之前我們用它來查看自己App以及從AppStore中下載的App的UI層級,效果都是非常不錯的。Reveal在逆向工程中不僅僅是用來查看UI層級的,它可以幫你定位問題。比如舉個簡單的例子,假如你想在某個App的某個頁面彈出一個Alter,那麼Reveal會很輕松的幫你找到這個頁面以及相關的類。
好了,廢話少說,今天博客的主題就是如何在越獄環境下配置和使用Reveal來查看App的UI層級。Reveal for Mac版可以從Reveal官網上下載,不過只能試用30天。你也可以從網上直接下載破解版的Reveal。如果你想搞的有意思點,使用Hopper自己去破解官方的Reveal,網上有使用Hopper來修改Reveal匯編,破解Reveal的教程,親試有效。使用Hopper破解Reveal的不做請移步於“Reveal破解鏈接”,在當前最新版本1.6.3是有效的。本篇博客中所使用的Reveal 1.6.3就是使用Hopper進行破解。當然,這不是今天的主題,今天的主題是如何使用Reveal。
當然今天博客中所涉及的內容是在越獄手機上進行的,如何使用Reveal在未越獄的手機上查看你自己的App的UI層級,請自行Google,在此就不做過多贅述了。
一、在越獄設備上配置Reveal
下方的內容是基於越獄的設備操作的,設備的系統版本為 越獄版。
1. Reveal Loader安裝
首先我們打款越獄設備的Cydia,然後在搜索中輸入Reveal Loader,並且進行安裝即可,下方是安裝後的效果。這一步比較簡單,安裝後重啟SpringBoard即可。
這一步也是比較關鍵的一步,安裝完上述的後請查看是否有這個文件夾,並且確定該文件夾中是否有這個文件,如果有的話,請跳過這一步,如果沒有,那麼就往下看吧。
當然,本部分需要對越獄設備中的文件系統進行操作,並且將Mac上的文件夾導入到設備中。當然你可以使用OpenSSH來連接你的設備,但是要是將Mac中的文件導入到越獄設備相應的文件夾中,還是使用下方的可視化工具更直觀一些。
下方是我本地裝的兩個工具,當然其中任何一個都可以操作iOS設備的文件系統,不過iExplorer這個工具的功能更強大一些。iExplorer可以查看你的Mac上所有iOS設備的備份文件,當然也包括非越獄設備的備份文件。
我們Mac上的Reveal自帶了兩個庫,一個是libReveal.dylib,一個是Reveal.framework。在未越獄的設備上使用庫是後者,本篇博客中使用的是前者。這兩個文件位於Reveal中的iOS Library中。Reveal菜單->Help->Show Reveal Library in Finder ->iOS Library。通過上述目錄就可以找到我們需要的文件,當然本篇博客中我們只需要libReveal.dylib這一個文件。
找到上述的libReveal.dylib文件後,使用IExplorer拷到我們的設備中相應的目錄下即可。如下所示。
至此,我們的Reveal配置工作就結束了,接下來就是使用Reveal來做一些事情了。
1.在設備上選擇可以Reveal的App
我們在越獄設備上安裝完Reveal Loader後就可以在設置中找到Reveal的配置項,在該配置項中我們可以去選擇要Reveal的App, 當然對於越獄手機,手機上安裝的所有App都可以Reveal。當然也包括從AppStore下載的,也包括iOS系統自帶的。如下所示:
2.查看系統App"股市"的UI層級
上面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層級。
在上方截圖中,我們點擊下方的股市這條就可以Reveal“股市”這個App了。下方就是“股市”這App的UI層級圖。
經過上述步驟,Reveal就可以正常工作了,至於如何讓Reveal的功能發揮到極致,那麼還得看使用的人呢。今天博客就先到這兒。