如果你曾經看過Android應用程序,你會發現在最高級的層次上分析你的目標的能力。動態程式分析將為您提供應用程序活動和一般行為的非常好的概述。不過,有時您只需要分析應用程序而不運行它。您將需要查看其組件,分析它們如何互動,以及數據如何從一個點到另一個點受到污染。
這是推動smalisca發展的主要因素。在動態程式碼分析之前進行靜態程式碼分析確實有一些很好的理由。在與應用程序互動之前,我想知道應用程序是如何構建的,是否有任何API並生成所有類型的調用流圖。事實上,圖表是非常重要的,因為它們形象化的東西。我只看圖表,而不是從一個檔案跳到另一個檔案,從一個類跳到另一個類。
雖然圖形構建是我編寫這種atool的一個重要原因,但smalisca還有一些其他一些您應該瞭解的功能。
特徵
目前有一些主要功能,如:
- parsing您可以解析Smali檔案的整個目錄並選取:類資訊類内容類方法在不同類的方法之間縮放然後您可以將結果匯出為JSON或SQLite。有關詳細資訊,請在分析頁上查看。
解析
您可以解析Smali檔案的整個目錄並選取:
- 班級資訊
- 類内容
- 類方法
- 不同類的方法之間的調用
然後可以將結果匯出為JSON或SQLite。
在解析頁面獲取更多資訊。
- analyzinga匯出結果後,您將得到一個互動式提示,以便更仔細地查看已分析的數據。您可以蒐索類、内容、方法甚至方法調用。然後,可以對蒐索標準應用多個篩選器,如:smalisca>s c-c class_name-p test-r 10-x path-s class_type此命令將蒐索10個(-r10)類,這些類的類名(-c)中包含模式測試(-p)。然後,命令將從結果中排除列路徑(-x path),並按類類型(-s)對其進行排序。讓我們看一看另一個示例:smalica>scl-fc com/android-fm init-r10這將蒐索其調用類名稱包含patterncom/android(-fc)的所有方法調用。此外,我們還可以查找來自包含模式init(-fm)的方法的調用。當然,您可以從檔案中讀取命令並以批次處理管道分析結果:$c at cmd.txtsc-c class_name-p com/gmail/xlibs-r 10-x pathquit$。/smalisca.py analyzer-i results.sqlite-f sqlite-c cmd.txt…在分析頁瞭解更多資訊。
分析
匯出結果後,您將得到一個互動式提示,以便更仔細地查看已分析的數據。您可以蒐索類、内容、方法甚至方法調用。然後,可以對蒐索標準應用多個篩選器,如:
此命令將蒐索10個(-r 10)類,這些類的類名(-c)中包含模式測試(-p)。之後,該命令將從結果中排除列路徑(-x path),並按類類型(-s)對它們進行排序。
讓我們看看另一個例子:
這將蒐索其調用類名包含patterncom/android(-fc)的所有方法調用。此外,我們還可以查找來自包含模式init(-fm)的方法的調用。
當然,您可以從檔案中讀取命令,並以類似批次處理的管道分析結果:
在分析頁面獲得更多資訊。
- web APIsmalisca提供了一個REST web服務,以便只需使用一個web用戶端就可以輕鬆地與結果互動。這樣,您可以在自己的(奇特的)web應用程序中訪問資料,並在後端和前端之間進行清理分離。請在web API頁面上閱讀有關可用restapi的更多資訊。
web API
smalisca提供了一個REST web服務,以便通過使用web用戶端輕鬆地與結果互動。通過這種管道,您可以在自己的(奇特的)web應用程序中訪問資料,並在後端和前端之間進行清理分離。
在web API頁面上閱讀更多關於可用restapi的資訊。
- 形象化我認為這是smalisca最有價值的特性。有條理地將結果形象化的能力會讓你的生活更舒適。根據你的興趣,這個工具有幾個我想提升的圖形繪製功能。首先你可以畫你的包,包括它們的類,内容和方法:smalica>dc-c class_name-p test-f dot-o/tmp/classes.dot::INFO將結果寫入/tmp/classes.dot smalisca>這將首先蒐索類名包含test的類,然後用Graphviz dot語言匯出結果。然後,您可以使用dot、neato、circo等手動生成圖形,或者使用互動式提示:smalica>dc-c class_name-p test-f pdf-o/tmp/classes.pdf--prog neato::INFO將結果寫入/tmp/classes。pdf smalisca>在繪圖頁獲取更多資訊。
視覺化
我認為這是smalisca最有價值的特性。有條理地將結果形象化的能力會讓你的生活更舒適。根據你的興趣,這個工具有幾個圖形繪製功能,我想推廣。
首先,您可以繪製包,包括它們的類、内容和方法:
這將首先蒐索其類名包含test的類,然後用Graphviz DOT語言匯出結果。然後,可以使用dot、neato、circo等手動生成圖形,也可以使用互動式提示:
在繪圖頁獲得更多資訊。
螢幕截圖
將結果輸出為錶。
類和模塊之間的基本關係。
看看截圖頁面。
安裝
請參閱安裝頁。要求:
- 巨蟒(2.x/3.x)
- 水泥
- 格拉夫維茲
- 煉金術
如何使用
安裝該工具後,您可能希望首先使用Android應用程序(APK)。使用apktool或我自己的toolADUS轉儲APKs內容。為了含蓄起見,我將使用FakeBanker,我在之前的博客文章中分析過。
第一次接觸
但首先讓我們看看工具的主要選項:
解析
在進行分析之前,我將首先分析Smali檔案的一些目錄:
還可以查看解析頁面以獲取更多資訊。
分析
現在您可以自由地對生成的匯出執行任何所需的操作。您可以直接檢查SQLite資料庫或使用smalicas分析功能:
有關更多可用的命令和選項,請參閱“分析”頁。
繪圖
請參閱繪圖頁以獲取完整示例。
許可證
smalisca是根據麻省理工學院的許可證發佈的。查看LICENSE.rst檔案。
信用
此工具專用於Lică。非常感謝:
- Stephen McAllisterMany感謝您花了這麼多時間進行APK調試並提出了很多好主意
斯蒂芬·麥卡利斯特
- 非常感謝所有這些小時的APK調試和偉大的想法
- 感謝您的耐心和理解!
我的女朋友
- 非常感謝您的耐心和理解!
- 網絡駭客星球!
nullsecurity.net網站
- 砍掉這個星球!