iNalyzer允許我們查看類信息,執行運行時分析和其他一些事情。基本上它把解密應用、導出類信息這些事情自動化了,並且更好的展示了出來。我們也可以像Cycript那樣掛鉤運行的進程。iNalyzer由AppSec Labs開發和維護,它的官方地址在這。iNalyzer同時也已經開源了,gitub地址在這。
在用iNalyzer之前,有些依賴的軟件需要先安裝。請確保Graphviz 和Doxygen已經安裝了,因為沒有這2個工具,iNalyzer不會正常工作。並且,請注意, 我在Mac OS X Mountain Lion 10.8.4上做的測試,但是我們用最新版本的Graphviz的時候它經常會掛起(hang)。因此,我下載了Graphviz的一個較老的版本(v 2.30.1) ,並且這個老版本工作正常。你可以在這找到Graphviz for Mac的老版本。
第一步就是在你的iOS 設備上安裝iNalyzer。先到Cydia->管理, 確保源http://appsec-labs.com/cydia/被成功添加,如下圖。
然後到Cydia的搜索,搜索 iNalyzer。根據你現在設備上正在運行的iOS版本,選擇對應版本的iNalyzer。
如你所見,我已經把iNalyzer安裝好了。
現在ssh進入設備,,然後轉到iNalyzer應用所在的目錄。iNalyzer安裝在/Applications目錄,因為它需要以root用戶權限運行。如果你不了解這個概念,請確保你讀過本系列 前面的文章。
輸入./iNalyzer啟動iNalyzer。
現在如果你到主屏幕,然後看看iNalyzer應用圖標,你會看到有個提醒數字。這表明這個應用 可以通過web接口訪問,然後這個提醒數字就代表的是端口號。 如果你再次運行 ./iNalyzer,那麼iNalyzer就會停止。因此,請確保記得./iNalyer是開啟還是關閉這個應用。
現在你可以找到你的設備的IP地址,然後用ip:port的方式在浏覽器上打開。這裡端口是5544,IP地址是10.0.1.23.因此url地址是http://10.0.1.23:5544/。一旦你打開這個頁面, 你會看到如下圖的界面。你可以選擇一個應用,然後iNalyzer就會准備一個zip文件,然後下載到你的系統上以便分析。
不過,我在這行這一步的時候卻遇到一些問題。因此,我們將使用一個替代方法來完成這一步。首先確保iNalyer正在運行。然後轉到iNalyer的目錄下,然後不帶任何參數的運行 iNalyer5。
現在你可以看到一系列可以用來分析的應用。這裡我們選擇Defcon應用來分析。
你可以看到iNalyer已經開始工作。它首先解密應用,找出對應的類信息和其它一些信息。如下圖所示,一旦iNalyzer完成它的工作,它就會創建一個ipa文件,然後把它 保存到下圖高亮的地址。
現在我們需要得到這個ipa文件,然後把它下載到我們的系統上(電腦上)。我們可以用sftp。
一旦我們得到ipa文件,把它後綴名改為zip,然後解壓這個文件。
在終端(Terminal, 命令行)下,轉到其內部的Payload-> Doxygen目錄下。如下圖。
你會看到有一個叫做doxMe.sh的shell腳本。如果你看看它的內容,你會看到它把運行Doxygen的工作自動化了。 Doxygen也會運行Graphviz來產生圖表,結果會保存在內部一個叫做html的文件夾下。基本上,iNalyzer已經把所有的類信息替我們保存在
內部一個叫做Reversing Files的目錄下了,而且它用Doxygen和Graphviz來把信息更友好的展示出來了。這個腳本同時也會把新創建的html文件夾內部的 index.html文件打開。
現在,我們來運行這個腳本,讓iNalyzer為我們做所有的事情。
一旦這個命令完成,iNalyer會把新創建的html文件夾內部的index.html文件打開。 下面就是打開的樣子。在這裡,我用的是chrome。不過,這個工具的開發者 推薦我再進行運行時分析的時候使用firefox浏覽器,因為其它浏覽器用起來可能會有問題。如下圖所示,第一頁給出了對整個應用的字符串分析。它把字符串分成了 SQL和URL字符串。
你也可以看看應用中使用的所有的view controller。
點擊任意的View controller,你可以看到它的方法和屬性。
你也可以看看Info.plist文件的內容。
如果你選擇Classes這個Tab,在Class Index下面你回看到所有應用中使用的類的列表。有些是蘋果自己的類,有些是這個應用的開發者創建的。
如果你到Class Hierarchy Tab(類層次標簽)下,你可以看到以圖像方式展示的類信息和它們之間的關系。這會給你大量關於應用如何工作的知識。 這些圖使用Graphviz這個工具產生的。
如果你選擇文件標簽(files tab), 你可以看到iNalyer生成的所有接口文件。
本文我們學習了如何使用iNalyer對iOS應用程序進行靜態分析,可以看到它使我們的工作變得非常容易。
本文原文是 IOS Application Security Part 15 – Static Analysis of IOS Applications using iNalyzer