天天看點

RN做的Android應用反編譯,安卓app apk反編譯

一、準備工具

提示:這些工具在官網都不好下載下傳,偶也是廢了好大力氣呢,建議直接下載下傳我提供的網盤連結

(1) 使用工具介紹:

1.apktool 最新版 jar 包

作用:資源檔案擷取,可以提取出圖檔檔案和布局檔案進行使用檢視

2.dex2 jar 的zip包

作用:将apk反編譯成java源碼(classes.dex轉化成jar檔案)

3.jd-gui 工具

作用:檢視APK中classes.dex轉化成出的jar檔案,即源碼檔案

(2) 使用工具下載下傳與安裝:

RN做的Android應用反編譯,安卓app apk反編譯

如果 dex無法轉化為jar 建議去下載下傳最新版本dex2jar

最新時間為 2 Apr 2018

dex-tools-2.1-SNAPSHOT.zip

RN做的Android應用反編譯,安卓app apk反編譯
RN做的Android應用反編譯,安卓app apk反編譯

二、Apk 反編譯步驟

(1) 使用 apktool 反編譯 apk 得到圖檔、XML配置、語言資源等檔案

1.将上述下載下傳好的 3 個工具統一放到一個檔案夾中(目錄最好不好有中文),并解壓 zip 檔案,例如:

RN做的Android應用反編譯,安卓app apk反編譯

2.打開 cmd/終端,進入上述工具目錄

RN做的Android應用反編譯,安卓app apk反編譯

3.運作apktool_2.3.4.jar這個jar檔案來将 apk檔案進行反編譯,在java中,運作可執行jar包的指令是:

java -jar apktool_2.3.4.jar d -f apk檔案絕對路徑 -o 輸出的目錄

例如: 使用如下的指令運作apktool_2.0.1.jar反編譯MMTS-release-1.0.2.apk

java -jar apktool_2.3.4.jar d -f D:\apkDecompile\ocrTest.apk -o source

這個指令是啟動 apktool_2.3.4.jar 将位于 D:\apkDecompile\ocrTest.apk 檔案執行反編譯,然後将反編譯生成的檔案存放到 apk 檔案同級的 source 目錄下,截圖:

RN做的Android應用反編譯,安卓app apk反編譯

4.然後就會生成源檔案的目錄,有開發經驗的大概能看出點什麼

RN做的Android應用反編譯,安卓app apk反編譯

5.重要的有【res】目錄和【AndroidManifest.xml】

RN做的Android應用反編譯,安卓app apk反編譯

以上就是使用 apktool 這個工具将一個 apk 反編譯得到圖檔、XML配置、語言資源等檔案的過程

(2) 使用 dex2jar 反編譯 apk 得到 Jar 包

将要反編譯的 APK 字尾名改為 .rar 或者 .zip,并解壓,得到其中的classes.dex 檔案(它就是java檔案編譯再通過dx工具打包而成的),如下圖所示:

RN做的Android應用反編譯,安卓app apk反編譯

将擷取到的classes.dex放到之前解壓出來的工具【dex2jar-2.0】檔案夾内,如下圖所示:

RN做的Android應用反編譯,安卓app apk反編譯

在指令行下進入到 dex2jar.bat 所在目錄,輸入"d2j-dex2jar classes.dex",截圖:

RN做的Android應用反編譯,安卓app apk反編譯

指令執行完成之後,在目前目錄下就可以看到生成的Jar檔案了,如下圖所示:

RN做的Android應用反編譯,安卓app apk反編譯

反編譯 classes.dex 得到 classes-dex2jar.jar 檔案之後,就可以使用【jd-gui】工具将 class 檔案反編譯成 java 源代碼了

(3) 使用 jd-gui.exe 工具将 class 檔案反編譯成 java 源代碼

1.打開 jd-gui.exe 程式(不需要安裝,之前 zip 包解壓即可)

RN做的Android應用反編譯,安卓app apk反編譯

2.打開 jar 檔案,截圖:

RN做的Android應用反編譯,安卓app apk反編譯

3.選擇 class 檔案就可以看到 java 源代碼:

RN做的Android應用反編譯,安卓app apk反編譯

三、出錯提示:

如果那不出錯了,基本就是工具版本的問題,建議全部下載下傳最新版或者全部使用我提供的版本