Android 反編譯工具 apktool ,smali2java, dex2jar , jd-gui ,jadx-gui 的安裝與使用

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 文件就可以看到 源代碼 。超級好用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章