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