安裝步驟按照官方教程https://code.google.com/p/androguard/wiki/Installation,下面記錄下無法在ubuntu下apt-get的模塊:
python模塊:
在https://pypi.python.org/pypi查找需要的python模塊並下載解壓,用命令 " sudo python setup.py install "按照模塊
zlib:
參考http://jingyan.baidu.com/article/29697b91321e2eab20de3c0d.html
chilkat:
在http://www.chilkatsoft.com/python.asp下載系統和python對應版本的zip,解壓並把吃chilkat.py和_chilkat.pyd復制到python的"site-packages"目錄下
編譯elsim:
在正式編譯之前,要修改一下elsim下面的formula和libelsign的Makefile文件。
打開elsim/elsign/formula/Makefile,添加上包含目錄,從而使編譯器能夠找到muParser.h,例如:
CFLAGS += -I/usr/include/muParser
打開elsim/elsign/libelsign/Makefile,添加上包含目錄,從而使編譯器能找到muParser.h和Python,例如:
CFLAGS += -I/usr/include/muParser -I/usr/include/python2.7
最后在androguard目錄下make,在此過程中如果出現.h找不到。請看下面的字符是否有對應的,直接apt-get
python-dev python-bzutils libbz2-dev libmuparser-dev libsparsehash-dev python-ptrace python-pygments python-pydot graphviz liblzma-dev libsnappy-dev
Gephi:
在https://gephi.org/users/download/下載Gephi。ubuntu安裝后沒安裝jdk,故先sudo apt-get install openjdk-7-jdk。安裝好java環境后,運行"update-alternatives ---config java"
and "update-alternatives --config javac"(若這2個命令沒成功說明java環境沒安裝成功)。系統沒設置java_home則直接在Gephi/bin/gephi文本中修改javahome字符串值為java主目錄;接着運行"./gephi"運行Gephi
jdkhome="/usr/lib/jvm/java-7-openjdk-amd64"
以上關於androguard的基本模塊和功能都以安裝完畢,下面簡單介紹下androguard的模塊功能(androguard-19版本):
androapkinfo.py: 查看apk文件信息:
./androapkinfo.py -i crackme0502.apk > output/apkinfo.txt (該模塊輸出信息較多,使用重定向到文檔;下同)
androxml.py: 解密並輸出apk包中AndroidManifest.xml文件:
./androaxml.py -i crackme0502.apk >output/Manifest.xml (該模塊輸出的xml中,圖片資源路徑沒修復只用id表示)
androcsign.py: 添加apk文件的簽名信息到數據庫文件
androdd.py: 生成apk文件中每個類方法的調用流程圖:
./androdd.py -i crackme0502.apk -o ./output -d -f jpg
androdiff.py: 比較兩個apk文件的差異
androdump.py: dump一個linux進程的信息
androgexf.py: 生成apk的GEXF格式的圖形文件,可搭配Gephi查看:
./androgexf.py -i crackme0502.apk -o ./output/apk.gexf
androlyze.py: 提供交互環境方便分析人員靜態分析android程序
andromercury.py: 原為Mercury(先改名為drozer,可看我前面對其源碼分析)工具框架,最新版androguard已沒有該模塊;
androrisk.py: 評估apk文件中潛在的風險:
./androrisk.py -m -i crackme0502.apk > output/risk.txt
androsign.py: 檢測apk的簽名信息是否存在數據庫中,與androcsign.py相反
androsim.py: 計算2個apk文件的相似度
androxgmml.py: 生成apk/jar/class/dex文件的控制流程及功能調用圖:
./androxgmml.py -i crackme0502.apk -o output/apk.xgmml
apkviwer.py: 為apk文件中每一類生產獨立的graphml圖像文件:
./apkviewer.py -i crackme0502.apk -o output/viewer/
參考資料:
android軟件安全與逆向分析