Androguard是一款使用Python編寫的跨平台的Android逆向工具,它可以在 Linux/Windows/OSX上運行。使用它可以反編譯android應用,也可以用來做android app的靜態分析(static analysis)。Androguard可以生成Java方法級與Dalvik指令級的圖形文件,配合Gephi工具查看圖形文件,可以快速地了解程序的執行流程,在靜態分析Android程序時,這個功能非常方便。
網上對Androguard在Windows系統下的操作介紹較少,而且Androguard不同版本生成調用圖的用法不同,在這里對使用Androguard的新老版本生成調用圖的過程做一定的介紹,當然,個人還是推薦使用新版本、
老版使用方法
概述
環境:win10+Androguard1.9+python2.7
說明:Androguard1.9版本中有androgexf.py,androgexf.py用來生成APK的GEXF格式的圖形文件。而Androguard1.9不兼容python3,所有要在python2中進行。python3的用戶可以配置一個virtualenv的pythong2環境。
1、下載
地址:https://code.google.com(需FQ)
下載到本地,直接解壓
2、使用
使用方法參考自《Android軟件安全與逆向分析》一書,也可以直接在上面所提供下載地址中閱讀文檔學習
1、cmd中進入Androguard1.9目錄
cd C:\Users\sky\Desktop\androguard-1.9
2、用python2執行
python ./androgexf.py -i ./sample.apk -o ./sample.gexf
解釋:
閱讀androgexf.py可知
-i后面為輸入文件,./表示當前目錄,即apk文件要放在與androgexf.py同級目錄
-o后面為輸出文件,./表示生成得圖片放在當前目錄
示例:
新版本使用方法
截至到今日(2021.5.9),Androguard已經更新到3.4版本,已經能兼容python3.6版本,但是文件里的androgexf.py里不見了,使得網上不少教程失去了用處,筆者特此研究新版本的使用方法
官方文檔: Androguard 3.4.0 documentation(需要FQ)
githup:GitHub - androguard/androguard(需要FQ)
環境:win10+Androguard3.4+python3.8
1、下載
方法一
直接在pycharm里安裝第三方庫:File->settting->python Interpreter->添加:
搜索androguard,下載,如下:
方法二:
參考官方文檔window下方法pip:
pip install -U androguard[magic,GUI]
可能會報的錯誤:
解決方法:
pip install pyqtwebengine==5.12.0
pip install pyqt5==5.12.1
2、使用
參考自官方文檔
翻譯:
使用方法:創建一個調用圖並將其導出為圖格式。
默認情況下是在當前目錄下創建一個名為callgraph.gml的文件。
目錄中
類名以 "Lfoo/bar/bla; "的形式出現。
例如。
$ androguard cg examples/tests/hello-world.apk
選項。
選項: -o, --output TEXT 輸出文件的文件名,擴展名用於決定使用何種格式。
用來決定使用哪種格式[默認。
callgraph.gml]
-s, --show 不保存圖形,而是用
mathplotlib打印(你可能什么都看不到!)。
-v, --verbose 打印更多的輸出結果
--classname TEXT 按類名過濾的Regex [默認:.*] 。
--methodname 按方法名過濾的文本 Regex [默認值:.*] 。
--descriptor TEXT 用來過濾描述符的Regex [默認為.*] 。
--accessflag 以accessflags過濾的Regex [默認:.*] 。
--no-isolated / --isolated 不存儲沒有xrefs的方法。
--help 顯示此信息並退出。
示例:
androguard cg sample.apk -o ./sample.gexf