須要工具:
1.apktool apk打包工具
下載地址:http://android-apktool.googlecode.com/files/apktool1.5.2.tar.bz2
安裝:直接解壓就可以,是一個apktool.jar文件。通過
- $java -jar apktool.jar
$java -jar apktool.jar
來執行。依賴於java執行環境
2.dex2jar dex轉化jar工具
下載地址:http://dex2jar.googlecode.com/files/dex2jar-0.0.9.15.zip
安裝:直接解壓就可以,是一個目錄,里面包括了非常多文件。通過
- $./dex2jar.sh
$./dex2jar.sh
來執行
3.假設你沒有unzip。安裝此解壓工具, zip解壓縮工具,用於解壓jar包(jar包是zip壓縮的,所以能夠用其他工具取代)
下載地址:ubuntu $sudo apt-get install unzip
安裝: $sudo apt-get install unzip
- $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
- $unzip [source.apk] -d [step_1]
$unzip [source.apk] -d [step_1]
step_1指的是你所須要解壓到的文件夾
(2)進入step_1 文件夾,找到classes.dex文件,將dex文件轉化成jar文件
- $dex2jar.sh classes.dex
$dex2jar.sh classes.dex
(3)獲得一個classes_dex2jar.jar文件。我們如今要再度解壓這個文件
- $upzip classes_dex2jar.jar -d [step_3]
$upzip classes_dex2jar.jar -d [step_3]
step_3指的是你解壓到的文件夾
(4)我們獲得一個step_3文件夾。我們接下來要反編譯該文件夾下全部.class文件
- $./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文件。
假設以上命令不運行的話,查看文件夾是否正確。
