iOS逆向工具-Reveal越獄注入配置記錄

目錄

前言

reveal loader方式部署

兩種部署方式總結(jié)

前言

環(huán)境:

Mac OS 10.13

Reveal(官方試用版V24,Mac上安裝)

iOS 12.4.5

測試iOS app的時候遇到一個問題,明明返回的字段是未做過任何處理的xss語句,但是在界面上完全執(zhí)行不了,xss很菜,所以想走個捷徑,直接看界面的前端代碼來進(jìn)行xss測試(類似chrome的開發(fā)者工具)。

然而,但是

app的UI并不是html界面!要測試的app也不是H5!配置好reveal之后發(fā)現(xiàn)并沒有我想象中的JS代碼。

讓我們重新溫習(xí)一遍reveal的作用:

Reveal是一個用于查看程序界面結(jié)構(gòu)和調(diào)試界面的工具,可以直觀的查看應(yīng)用的--

--UI布局

微信的布局

沒怎么了解過app的開發(fā),暫時不清楚知道布局能用來做什么。


reveal loader方式部署

Reveal越獄注入的工作方式和frida以及debugsever的思路差不多,都是iOS客戶端部署+Mac端sever執(zhí)行的操作模式。

1. 通過Mac端的Reveal制作libReveal.dylib

在Mac端安裝并打開reveal,訪問選項iOS library,找到RevealServer文件(根據(jù)版本不同,舊版可能直接有l(wèi)ibReveal.dylib),然后將RevealServer文件名修改為libReveal.dylib(其他名字不行)。

iOS library
RevealServer

2. 獲取libReveal.dylib后,我們先在iOS端的cydia上搜索安裝reveal loader。

3. 安裝好reveal loader后,在iOS設(shè)備中的/Library文件夾下新建RHRevealLoader文件夾,然后將libReveal.dylib放入該文件夾(用scp或者fileZilla都可以)。

4. 打開設(shè)置,進(jìn)入Reveal選項,Reveal->Enabled Applications->Select which application to load Reveal into.

reveal選擇待測app

5. 選擇好app后,在iOS上重新啟動該app(此時,你的iOS設(shè)備應(yīng)該已經(jīng)usb連接到mac,或者已經(jīng)和mac處于同一個局域網(wǎng)段了),即可在Mac上的reveal中顯示你的app(第一個表示局域網(wǎng),第二個表示usb):

Mac端reveal接收到的app

6. 點擊任意一個,等待它加載好了,就可以開始未知的工作了(不知道布局能用來做什么,有大佬給我解答一下嗎)。


兩種部署方式總結(jié)

在查閱和學(xué)習(xí)中,總結(jié)了兩種部署的方式,因為網(wǎng)上查到的教程有點亂,因此做個梳理。

配置時兩種方法都做了,但是由于沖突,最后只做了第二種(就是reveal loader方式部署)。

第一種方法,是MobileLoader直接加載libReveal.dylib,是參考《iOS應(yīng)用逆向與安全》(劉培慶)中介紹的方法,這個方法沒試驗完全,但是多數(shù)教程有它的影子(書上介紹的方法可能是有效的,一開始不能理解,后來又同時部署了兩套dylib,導(dǎo)致指定的app閃退,最后關(guān)頭放棄了嘗試這種方法)。

第一種方法是直接在/Library/MobileSubstrate/DynamicLibraries/目錄下加入libReveal.dylib和libReveal.plist即可,無需在客戶端再安裝任何東西。其中plist文件只有一個bundles值,指向待測的app。由于MobileLoader的工作原理,這個目錄的動態(tài)庫會按照一定的規(guī)則被加載入app中(這個原理在移動App入侵與逆向破解技術(shù)-iOS篇有詳細(xì)介紹),因此我們只需要把這兩個文件放進(jìn)去,然后重新啟動App即可。

plist內(nèi)容:

{Filter = { Bundles = ( "com.XXXX.XXX", ); }; } ?

第二種方法可能是第一種方法的一個延伸性質(zhì)的開發(fā),因為安裝的reveal loader還是在/Library/MobileSubstrate/DynamicLibraries/目錄中添加了動態(tài)庫文件,實際可能只是代替了libReveal.plist的功能。(當(dāng)然,好像大部分tweak都是這種思路)

感覺上,第一種方式是通過MobileLoader>A.plist>A.dylib的方式去加載的,而第二種方式是通過MobileLoader>B.plist>B.dylib>A.dylib的方式(A表示libReveal,B表示reveal loader對應(yīng)的dylib名稱)。

還是建議采用第二種方法,因為選擇app時比較靈活,雖然加載的步驟多,可能相對慢一點。

參考:

iOS逆向之Reveal調(diào)試工具

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容