自由轉載 ^_^ 同時請注明原文出處:http://www.cnblogs.com/wangvsa/archive/2012/10/09/2717089.html
一、apktool
1.介紹
其主頁是http://code.google.com/p/android-apktool/,這個工具可以反編譯apk程序並得到
原始資源文件。我們可以利用這個工具來查看apk中的圖片等資源、修改源代碼並重新編譯。
由這個工具反編譯后並沒有得到java文件,而是得到了smali文件,在smali目錄中是所有java文件
所對應的smali文件,smali相當於java的匯編語言(個人理解)。
2.使用
到項目主頁下載文件,以linux系統為例(新建一個目錄~/android/apk_crack),
下載apktool-install-linux-*和apktool-*,將兩個壓縮包解壓得到三個文件:aapt、apktool、
apktool.jar。其中aapt是android-sdk中也帶的一個工具,而我們要使用的只是apktool。
命令行中執行下面語句:
1 cd ~/android/apk_crack 2 ./apktool
可以看到apktool的用法選項。其中常用的是d選項。舉例說明,要破解demo.apk,先將demo.apk
拷貝到apktool所在目錄,並執行:
1 ./apktool d demo.apk demo
其中demo是要反編譯到的目錄。命令執行完后進入demo目錄就會看到res目錄、AndroidMainfest.xml文件等。
由上面的工具得到smali文件,但是不方便閱讀,我們可以利用下面的工具來破解得到java文件。
二、dex2jar及JD-GUI
1.介紹
dex2jar用來將.dex文件轉換為.jar文件,主頁為http://code.google.com/p/dex2jar/
JD-GUI用來瀏覽.jar文件包含的java源文件,主頁為http://java.decompiler.free.fr/?q=jdgui
2.使用
到兩個工具主頁下載相應壓縮包。如我下的為:dex2jar-0.0.9.9.tar.gz和jd-gui-0.3.4.linux.i686.tar.gz。
先解壓兩個壓縮包到~/android/apk_crack目錄:
(1)解壓dex2jar-0.0.9.9.tar.gz得到dex2jar-0.0.99目錄,該目錄下的dex2jar.sh即為轉換工具。
(2)解壓jd-gui-0.3.4.linux.i686.tar.gz中的jd-gui,這是個二進制程序可直接運行,還可以集成到Nautilus文件
管理器。
還是以demo.apk為例,直接將其打開,解壓出其中的classes.dex,或者可以先重命名為demo.zip再解壓
出classes.dex。然后執行命令:
1 cd ~/android/apk_crack/dex2jar-0.0.99 2 ./dex2jar.sh ../classes.dex
可以得到classes_dex2jar.jar,這個文件就可以用jd-gui來打開並瀏覽了。界面如下: