Android 反編譯 apktool+dex2jar+jd-gui
阿新 • • 發佈:2018-12-10
工具下載
下載完成後直接解壓的資料夾就可以了
簡單反包
先隨便下載個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檔案。