1.apktool
下載地址 https://ibotpeaches.github.io/Apktool/install/
按照上面的步驟
第一步:就是要讓我們下載apktool.bat,把鼠標移至wrapper script上,然後右擊,鏈接另存爲。
第二步:下載apktool.jar文件,點擊find newest here,跳到下載頁,我們能儘量下載最新版本。
第三步:把你下載來的jar文件重新命名爲:apktool.jar。
第四步:官網建議你把apktool.bat、apktool.jar放到C盤的Windows下。我們就放到Windows下
然後我們 調出CMD cd 到 我們的apk所在的路徑下。(我在F 盤 apks 文件夾中放了一個hzApp.apk)
F:\>cd apks 執行 apktool d hzApp.apk
其中smali文件夾中就是源碼,可惜 這樣是看不見的,但是我們依然可以看到 工程中的各種資源文件。
2.smali2java
下載地址 http://www.hensence.com/cn/smali2java/#Download
smali2java是一個將smali代碼反編譯成java代碼的工具。
什麼是smali?smali是將Android字節碼用可閱讀的字符串形式表現出來的一種語言,可以稱之爲Android字節碼的反彙編語言。使用baksmali或apktool可以將Android應用程序包(apk或jar)反編譯爲smali代碼。
smali2java工具基於apktool (baksmali )生成的smali文件,依賴於smali文件中的代碼行數(.line關鍵字)和變量別名(.local關鍵字)等信息,可以最大程度還原原始的java代碼。還原出的java代碼將具有原始的變量命名,代碼的順序也與原始的java代碼保持一致。因此,本工具也具有侷限性,僅適用於帶有行數和變量別名信息的smali文件(java編譯器的編譯選項可以在生成的字節碼中剔除這些信息)。
從網站看的信息發現其存在一定的侷限性沒有 行數和變量名的smali 文件 我們就看不到Java 源碼了、工具用起來也簡單,加壓執行exe 文件 打開我們的 apk 包就好。
3.dex2jar 和 jd-gui 這兩個工具要配合使用。
dex2jar 看名字 就知道是吧 dex 文件 轉換爲 Jar 文件 而 jd-gui 工具就是查看源碼的工具了
將APK直接解壓(修改後綴名爲.zip,然後解壓)後,可以看到目錄下包含一個classes.dex文件。如下圖所示,而我們的源碼就在這個classes.dex 文件中。
然後我們 安裝 dex2jar
下載地址:https://sourceforge.net/projects/dex2jar/
加壓後 進入文件夾
現在把上面的classes.dex文件拷貝到該目錄下。 cmd窗口進入dex2jar-2.0,然後輸入命令:d2j-dex2jar.bat classes.dex回車。如下圖
然後 文件夾中就多了 classes-dex2jar.jar 文件。
安裝 jd-gui
下載地址: http://jd.benow.ca/ 。
解壓 後有一個 jd-gui.exe文件 我們打開後直接在裏面打開 之前的 classes-dex2jar.jar 文件 。我們就可以看到 Java 源碼了。
4.最後介紹一個工具 jadx-gui 把dex2jar 和 jd-gui 這兩個工具性能結合起來,簡單方便 。
下載地址 https://bintray.com/skylot/jadx/releases/v0.8.0#files
解壓后里面 bin 文件夾下有個 jadx-gui.dat 批處理文件 雙擊打開(最新版的要Jdk 1.8) 然後直接打來我們的apk 文件就可以看到 源代碼 。超級好用。