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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM