標籤:android style class blog code java
需要工具:
1.apktool apk打包工具
:http://android-apktool.googlecode.com/files/apktool1.5.2.tar.bz2
安裝:直接解壓即可,是一個apktool.jar檔案,通過
[plain] view plaincopyprint?
- $java -jar apktool.jar
$java -jar apktool.jar
來運行,依賴於java運行環境
2.dex2jar dex轉化jar工具
:http://dex2jar.googlecode.com/files/dex2jar-0.0.9.15.zip
安裝:直接解壓即可,是一個檔案夾,裡麵包含了很多檔案,通過
[plain] view plaincopyprint?
- $./dex2jar.sh
$./dex2jar.sh
來運行
3.如果你沒有unzip,安裝此解壓工具, zip解壓縮工具,用於解壓jar包(jar包是zip壓縮的,所以可以用其它工具代替)
:ubuntu $sudo apt-get install unzip
安裝: $sudo apt-get install unzip
[plain] view plaincopyprint?
- $upzip [src_path] -d [dst_path]
$upzip [src_path] -d [dst_path]
來運行
4.jad .class檔案反編譯工具
:http://www.varaneckas.com/jad
http://varaneckas.com/jad/jad158e.linux.static.zip
安裝:直接解壓即可,是一個可執行檔,通過
./jad
來運行。需要說明的是,這個需要下載static版本的,如果不行的話,在去第一個連結裡找另一個下載。
接下來,工具準備完畢了,最好設定一下環境變數,我們就可以反編譯apk了
一、抽取apk資源
執行: $java -jar apktool.jar d [source.apk]
二、反編譯源碼
(1)解壓apk
[plain] view plaincopyprint?
- $unzip [source.apk] -d [step_1]
$unzip [source.apk] -d [step_1]
step_1指的是你所需要解壓到的目錄
(2)進入step_1 目錄,找到classes.dex檔案,將dex檔案轉化成jar檔案
[plain] view plaincopyprint?
- $dex2jar.sh classes.dex
$dex2jar.sh classes.dex
(3)獲得一個classes_dex2jar.jar檔案,我們現在要再度解壓這個檔案
[plain] view plaincopyprint?
- $upzip classes_dex2jar.jar -d [step_3]
$upzip classes_dex2jar.jar -d [step_3]
step_3指的是你解壓到的目錄
(4)我們獲得一個step_3目錄,我們接下來要反編譯該目錄下所有.class檔案
[plain] view plaincopyprint?
- $./jad -o -r -s java -d src step_3/**/*.class
$./jad -o -r -s java -d src step_3/**/*.class
對於上面的參數,可以直接執行./jad查看,或者Readme.txt查看
(5)我們再度獲得一個src目錄,該目錄下就是反編譯好的源碼檔案了。
也可以使用JD-GUI工具直接查看classes_dex2jar.jar的class檔案。
如果以上命令不執行的話,查看目錄是否正確。