2012-12-06 124 views
4

我已经从Google Play下载了一些Android应用程序。我通过逆向工程工具apktool得到了Smali的代码。我想为这些应用程序生成调用图。我已经看到堆栈溢出和谷歌的很多链接,大多数建议的工具或者是c/c++,或者如果它们是Java,他们需要的源代码当然是我没有的。如何从android APK生成通话图?

有什么方法可以自动生成调用图吗?谢谢。

+0

发现做这些应用程序的许可证允许逆向工程? – Simon

+0

我刚刚刚接触Android安全性,并且想开发一款测试应用程序的工具。我不打算重新包装它们。有没有办法检查许可证是否允许?而且由于每个人都可以下载它,如果它们不允许,它如何被强制执行? – Junaid

+0

“如何执行”不是对合法性的测试,重新包装是一个单独的问题。大多数许可证明确禁止逆向工程。你可以检查开源应用程序 – Simon

回答

4

有像this这样的服务,除了调用图形之外还有许多功能。

如果您不是到这样的在线服务,您可以使用smali-cfgs工具生成的您smali码图..

+0

我刚刚去了德克斯特..概述它看起来很棒,就像它的名字=) – Junaid

1

apkinspector - http://code.google.com/p/apkinspector/

这个项目的目标是助手分析师和反向工程师可视化编译的Android软件包及其对应的DEX代码。 APKInspector同时提供分析功能和图形功能,为用户获得深入了解恶意的应用程序:

  • CFG
  • 调用图形
  • 静态仪表
  • 权限分析
  • 的Dalvik代码
  • Smali码
  • Java代码
  • APK信息

我试图在我的电脑(Debian的6.0)安装apkinspector:

sudo aptitude install libxext-dev 
source compile python-qt and python-sip 

http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.9.4/ 

sudo aptitude install python-tk 

easy_install ipython 
(sudo aptitude install python-pip & sudo pip install ipython) 

vi androguard/androlyze.py 
change "import IPython.ipapi" to "import IPython.core.ipapi" 
change "from IPython import IPShellEmbed" to "import IPython" 
change "IPShellEmbed" to "IPython.embed" 

但不幸的是它不能用!

因此我试着写我自己的使用Ruby工具,它可以在here

+0

这是很好的工具,但不幸的是,它甚至没有成功安装。它的页面要求运行不存在的“./install.sh”文件。当“StartQT.py”运行时,另一个软件包文件丢失。 :( – Junaid