Windows下使用Androguard生成调用图方法
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)