1. 程式人生 > >Android 反編譯 apktool+dex2jar+jd-gui

Android 反編譯 apktool+dex2jar+jd-gui

工具下載

apktool 官網下載 百度網盤分享 密碼:xxt7

dex2jar 官網下載 百度網盤分享  密碼:u2td

jd-gui 官網下載 百度網盤分享 密碼:vey1

下載完成後直接解壓的資料夾就可以了

簡單反包

先隨便下載個Apk 

winds+R然後在彈出的視窗輸入cmd命令 回車進入

通過cd命令 切換到apktool.bat和apktool.jar所在的資料夾

當然你也可以通過配置系統環境變數這樣就不用切換到目錄下了,這裡我就先不提了

然後執行

apktool.bat d -s

命令 後面加你要反編譯的Apk包 -s的用處是阻止命令把 dex解析成smali檔案 這裡我需要dex檔案就加上了

C:\Users\Administrator>D:

D:\>cd D:\Android 反包工具\apktools

D:\Android 反包工具\apktools>apktool.bat d -s "D:\Android apk\Test.apk"
I: Using Apktool 2.3.4 on Test.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
S: WARNING: Could not write to (C:\Users\Administrator\AppData\Local\apktool\framework), using C:\Users\ADMINI~1\AppData\Local\Temp\ instead...
S: Please be aware this is a volatile directory and frameworks could go missing, please utilize --frame-path if the default storage directory is unavailable
I: Loading resource table from file: C:\Users\ADMINI~1\AppData\Local\Temp\1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Copying raw classes.dex file...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...

D:\Android 反包工具\apktools>

這樣就是編譯完成了,然後你在apktool.bat所在的資料夾下就能夠看到生成了一個為Apk名稱的資料夾 我這裡就是Test檔案夾了這就是編譯的東西。

開啟Test檔案可以看到這樣的內容,這裡我就先講.dex檔案 

簡單說 .dex檔案就是原始碼在的地方我們主要就是看它這裡只打包了一個.dex檔案 看來方法比較少方法多的話會打包好幾個dex檔案。

接下來將dex檔案轉成jar檔案,然後就可以用jd-gui開啟檢視轉成的 jar檔案是在 d2j-dex2jar.bat所在的資料夾下

D:\>cd D:\Android 反包工具\dex2jar-2.0

D:\Android 反包工具\dex2jar-2.0>d2j-dex2jar.bat "D:\Android 反包工具\apktools\Test\classes.dex"

是不是看到你熟悉的Java包了呢

Smali

有時候你會發現dex包轉化成jar包錯誤,中途出現了問題用jd-gui開啟看時候發現有些是a,b,c,d或者不能看的字元亂碼。

那可能能apk的開發人員做了一些工作,比如混淆。

怎麼生成smali檔案:在執行apktool命令時候 不加-s 那麼apktools命令會自動把dex解析成smali檔案。

當然也可以用d2j-dex2smali.bat將 dex轉成smail檔案。