以Revea來l分析第三方App的UI
大?。?/span>0.3 MB 人氣: 2017-10-12 需要積分:1
標簽:reveal(2154)
Reveal簡介:這是個神奇的工具,它能常透徹地分析個App的UI結(jié)構(gòu)。
這個工具包括兩部分,部分是在PC上運行的一個獨立應(yīng)用,即Reveal.app,另一部分代碼在你要分析的某個App中,為此,Reveal提供了一個Framework和一個Dylib供使用。這兩部分之間通過Bonjure這種零配置網(wǎng)絡(luò)進行通訊。
基本使用
Reveal.app的使用沒有什么可說的,就是點擊運行。關(guān)鍵是另一部分,怎么嵌入到App中。
我們自己的App都有源碼,因此最簡單的方式就是靜態(tài)鏈接方式集成到App中。
關(guān)于基本使用,參考幫助中的“Integration Guide”,或者參考這些鏈接:
真正的需求
我弱弱地問一句:我自己的UI還需要用這個工具分析?有這個需求嗎?
實際上,Reveal是一個逆向工程工具,主要是用來分析別人的App(的UI),說是學(xué)習(xí)也好、研究也好、剽竊也好,反正這個工具真正的價值和意義就是用于分析別人的App。
libReaveal.dylib的限制
要分析別人的App,需要用到libReveal.dylib,很可惜,1.5版本提供的dylib不支持ARM架構(gòu),也就是說,只能用于模擬器。搞了半天,還是只分析自己的App,Reveal,你啥意思?
其實早期版本的libReveal.dylib是支持ARM架構(gòu)的,那時,只要把這個libReveal.dylib文件扔到手機的/Library/MobileSubstrate/DynamicLibraries/目錄下,就OK了。后來為何不支持ARM架構(gòu)了呢?我想這里面肯定發(fā)生了什么事,我想可能被投訴侵權(quán)了……想啥也沒用,這個libReveal.dylib現(xiàn)在不好使了!
搜了一下,往前好幾個版本都不支持ARM了,再早的,官方?jīng)]的下載,據(jù)說也不能與新版的ReavealApp配合使用。
Reveal,你是不是有點尷尬?
自己做一個libReveal.dylib
別責怪Reveal了,其實人家啥都給了,不是有Reveal.framwwork嗎?它可是模擬器和真機都支持的,如果你用它自己制作一個libReveal.dylib,支持ARM架構(gòu),用來分析別人的App,那么……“后果自負”,這絕對是Reveal的意思。
哈哈?~不就是一個越獄插件嗎,這個容易,附件就是我做的。制作過程也有點小坑,所以也貼出來吧。
這需要the os或者iOSOpenDev,正好我已經(jīng)裝了iOSOpenDev。
打開xcode,新建一個工程,如圖:

我的工程干脆也叫l(wèi)ibReveal。
工程建立了之后,我把Reveal.framework拖進來,再加一行l(wèi)og吧。

編譯,OK,dylib文件生產(chǎn)了。
拖拽過去,然后隨便打開一個App試了試,不行,Reveal.App沒有發(fā)現(xiàn)什么。嗯,我預(yù)料到了,不可能這么順!
我仔細看了一下編譯生產(chǎn)的這個libReveal.dylib文件,大小才150K,怎么這么???
我想起來了,它嵌碼不是“零代碼”嗎?“零代碼”應(yīng)該是利用了類加載機制,啟動代碼應(yīng)該放在load或者initialize里,只要這個類被加載,就會執(zhí)行到。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
