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后面为输出文件,./表示生成得图片放在当前目录

示例:

image-20210509174322407

新版本使用方法

截至到今日(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,下载,如下:

image-20210509175800461

方法二

参考官方文档window下方法pip:

pip install -U androguard[magic,GUI]

可能会报的错误:

image-20210509215330113

解决方法:

pip install pyqtwebengine==5.12.0
pip install pyqt5==5.12.1

2、使用

参考自官方文档

image-20210509225726120

翻译:

使用方法:创建一个调用图并将其导出为图格式。

  默认情况下是在当前目录下创建一个名为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
posted @   吮指  阅读(2097)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示
主题色彩