2020年FlowDroid+IDEA搭建教程


  大家好,最近由於工作的需要搭建Android分析環境,Flowdroid作為老牌可靠(最主要的是作者還在維護更新)的靜態污點分析工具,是分析Android靜態特征的利器。

  網上有很多在Eclipse環境下利用maven配置Flowdroid的教程,但經筆者測試后發現,一是這些教程大多是16、17年的,由於庫的版本幾經更迭,一些函數和方法都已棄用,需要新版本來進行更好的分析;

二是用maven方法解決依賴雖然簡單無腦,但有時某些提供依賴庫的網頁已經無法訪問,或者更換了地址和版本,這時解決起來會非常麻煩,也是踩了不少坑。在嘗試多個方法無果后決定直接導入作者編譯好的jar文件,以減少不必要的麻煩。

  筆者在配置過程中遇到過一些奇怪的問題,最后終於成功解決。發出來給自己做筆記,也希望能幫到更多需要使用它的朋友。

一、軟件和環境(均使用最新版本)   

  • IDEA IntelliJ 2020.2,舊版本也可以,無影響。
  • soot-jar庫。flowdroid是基於soot框架開發的,必須有它才能工作。該庫已經集成heros,jasmin等依賴,無需另行下載。
  • Flowdroid 2.8 。在發行版頁面下選擇soot-infoflow-classes和soot-infoflow-android-classes兩個jar文件下載即可。

   

 

  以上內容下載完成后,把它們放在你想要加入的項目目錄下。雖說庫的位置對項目無影響,不過方便起見還是和使用到它的項目放在一起更好。筆者是放在libs下

  

二、導入jar

  點擊IDEA窗口右上角的項目結構按鈕,點擊左側的Libraries選項卡,點擊加號選擇Java,在所在的項目目錄中選取剛剛下載的jar庫,最后點擊確定即可。

     

  如果是舊版本的IDEA,右上角可能沒有項目結構的按鈕。在菜單欄的FIle->Project Structure也能找到。

  

 

三、測試

  筆者參考了 使用Flowdroid生成Android程序API調用序列 這篇文章中的代碼,需要注意將代碼中的androidPlatformPath和appDirPath修改為你的SDK和樣本所在目錄。

  測試結果:

  

  

 

四、可能遇到的問題

1.java.lang.NoClassDefFoundError: gnu/trove/strategy/HashingStrategy

  未找到類,因為trove4j庫沒有下載配置好,缺少依賴。這里要感謝github上解答issue的大佬:issue

 

 

轉載請注明出處!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM