安装步骤按照官方教程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软件安全与逆向分析