使用Androguard配合Gephi生成apk的函数调用图进行静态分析

Androguard 可以生成Java 方法级与Dalvik 指令级的图形文件,配合 Gephi工具查看图形文件,可以快速地了解程序的执行流程,在静态分析Android程序时,这个功能非常方便。下面我们以crackme0502.apk为例,介绍如何使用 Gephi来静态分析它。首先下载Gephi程序,Gephi是开源的,支持Mac OSX/Windows/Linux 三种平台,目前最新版本为0.8.1beta,笔者演示时下载的是Windows 版本的安装程序,顺利安装完成后启动界面如图5-14所示。


 

点击菜单项“文件→打开”,选择上一小节使用 Androguard 生成的crackme0502.gexf,Gephi会分析出 gexf 文件的版本为1.2,然后点击确定按钮进入图形显示界面。在流程中选择“Yifan Hu”,然后点击运行按钮来生成分析图,如图5-15所示。


 

分析图生成完毕后,点击图形下方的“T”按钮显示标签(label)的内容,然后拖动旁边的两个滑块来调整连接线的粗细与文本的字体大小,如图5-16所示,左边的滑块用来调整节点与节点之间连接线的粗细,右边的滑块用来调整文本的字体大小。


 

接下来点击Gephi菜单栏下方的“数据资料“按钮,切换到“数据资料”选项卡,在过滤标签旁边的文本框中输入“OnCreate”查找所有OnCreate()方法,结果如图5-17所示。


 

结果中的第一条记录就是MainActivity的OnCreate(),在第一条记录上点击右键,选择菜单项“在概述选择”(这个 Gephi的中文翻译有些别扭,其含义应该是“在概览图中选中”),然后点击菜单下方的概览按钮,切换到图形显示页面,发现ACTIVITY 节点与OnCreate 节点,以及它们之间的连接线都是绿色的,将鼠标放在OnCreate节点上,可以看到它向下关联了MainActivity$1.<init>、findViewById 、setContentView、MainActivity$2.<init>共4 个节点,拖动所有的节点调整至合适位置,完成后效果如图5-18 所示,MainActivity在OnCreate()方法中执行了哪些内容一目了然。

按照上面的步骤,我们来查看OnClick()方法的节点,找到MainActivity$2的OnClick()方法,然后在记录上点击右键选择“编辑节点”,在颜色一栏将其修改为“[255,0,0] ”,设置节点为红色,然后如法炮制的设置 OnClick 节点的连接线连接的几个节点,最后在设置isRegistered 节点时,将其尺寸调整为15.0 ,最后效果如图5-19所示。


 

点击Gephi的菜单项“文件→保存”,将修改后的 gexf 文件存为 crackme0502.gephi ,方便以后查看。可以发现,使用Gephi分析apk文件比IDA Pro分析还要直观。除了简单的显示方法调用外,Gephi还有很多强大的功能,这些就留给读者自己慢慢去挖掘了。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值