2012-12-06 55 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