文章目錄
-
- 一、apktool
-
- 1、apktool 簡介
- 2、直接解壓
- 3、使用 apktool 反編譯
- 4、使用 apktool 重新打包
- 二、dex2jar
-
- 1、dex2jar 簡介
- 2、dex2jar 反編譯指令
- 三、enjarify
-
- 1、enjarify 簡介
- 2、enjarify 指令
- 四、jd-gui
- 五、jadx
學習 Android 安全 , 首先要了解常用的破解 Android 應用的方式 , 本篇部落格中簡單介紹了破解 Android 應用的
5
5
5 種常用工具 , apktool , dex2jar , enjarify , jd-gui , jadx ;
整理後的
5
5
5 種反編譯工具 : 該連結隻用于記錄 , 部落格中有官方網站的下載下傳位址 , 可以一一下載下傳 ;
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yM0EDN5AjNzQDO3I2NlZGZxYzX5UTO0YTMzEzLcFDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
一、apktool
1、apktool 簡介
官網位址 : https://ibotpeaches.github.io/Apktool/
文檔位址 : https://ibotpeaches.github.io/Apktool/documentation/
目前最新版本是 2.4.1 ;
apktool 常用于反編譯 Android 中的資源檔案 , 主要是 擷取 AndroidManifest.xml , res 目錄下的圖檔 , 布局 , style 風格配置 , 等 資源檔案 ;
Android 應用打包時 , 會使用 aapt 對工程中的資源檔案進行編譯 , 一般情況下将 apk 打開以後 , 都是編譯後的資源檔案 , 這些檔案基本不可讀 , 無法了解 ;
apktool 工具可以将 Android 項目中編譯後的 資源檔案反編譯 出來 ;
反編譯指令 :
java -jar apktool_2.4.1.jar d demo.apk -o demo
重新打包指令 :
java -jar apktool_2.4.1.jar b demo -o demo_repackage.apk
2、直接解壓
将 apk 直接解壓 ,
檢視其中的 AndroidManifest.xml 檔案 , 是無規則的亂碼 , 這是被 aapt 編譯後的資源檔案 , 無法檢視 ;
3、使用 apktool 反編譯
執行 java -jar apktool_2.4.1.jar d demo.apk -o demo 指令 ,
java -jar apktool_2.4.1.jar d demo.apk -o demo
其中 d 後面是 要反編譯的 apk 檔案 ,
-o demo 的含義是 将反編譯結果輸出到 demo 目錄中 ;
反編譯過程 :
檢視其中的 AndroidManifest.xml 檔案 , 可以看到真實的檔案内容 ;
4、使用 apktool 重新打包
将反編譯後的檔案 重新打包 ;
java -jar apktool_2.4.1.jar b demo -o demo_repackage.apk
b demo 是指定 要打包 demo 目錄 ;
-o demo_repackage.apk 是指定新打包的 應用安裝檔案是 demo_repackage.apk ;
重新打包過程 :
二、dex2jar
1、dex2jar 簡介
官方網站 : https://sourceforge.net/projects/dex2jar/
GitHub 位址 : https://github.com/pxb1988/dex2jar
下載下傳位址 : https://sourceforge.net/projects/dex2jar/files/
dex2jar 的作用是 将 dex 檔案反編譯成 jar 檔案 ;
在 Android 反編譯中就是将 classes.dex 反編譯成 jar 檔案 ;
2、dex2jar 反編譯指令
反編譯指令 : demo.apk 是指定要反編譯的 apk 檔案 , -o demo.jar 指定要輸出的 jar 檔案路徑 ;
d2j-dex2jar.bat demo.apk -o demo.jar
反編譯結果 : 在目錄中生成了 demo.jar 檔案 ;
三、enjarify
1、enjarify 簡介
GitHub 位址 : https://github.com/google/enjarify
下載下傳位址 : https://github.com/google/enjarify/releases
enjarify 主要作用是 将 apk 檔案反編譯成 Java 源碼 ;
enjarify 工具與 dex2jar 工具作用類似 ;
2、enjarify 指令
反編譯指令 : demo.apk 是指定要反編譯的 apk 檔案 , -o demo.jar 指定要輸出的 jar 檔案路徑 ;
enjarify demo.apk -o demo.jar
四、jd-gui
官方位址 : http://java-decompiler.github.io
GitHub 位址 : https://github.com/java-decompiler/jd-gui
下載下傳位址 : https://github.com/java-decompiler/jd-gui/releases
jd-gui 的作用是 檢視 jar 包中的檔案源碼 , 将 jar 檔案拖入到該工具的視窗界面即可 ;
将 jar 檔案拖到視窗中 , 即可檢視反編譯出的 jar 檔案源碼 ;
五、jadx
GitHub 位址 : https://github.com/skylot/jadx/
下載下傳位址 : https://github.com/skylot/jadx/releases/tag/v1.1.0
使用該工具 , 可以直接檢視 資源 與 代碼 ;
直接輕按兩下 jadx-1.1.0\bin 目錄下的 jadx-gui.bat 檔案 , 然後 選擇路徑 打開指定的 apk 檔案 ,
即可檢視該 apk 的源代碼與資源檔案 ;
該工具完成了上述
4
4
4 個工具的所有工作 , 但是閱讀代碼時 , 無法進行代碼跳轉 , 這就比較糾結了 , 在閱讀代碼方面不如 jd-gui 好用 ;
如果隻是簡單了解一下項目結構 , 或者擷取資源 , 可以使用該反編譯工具 ;
整理後的
5
5
5 種反編譯工具 該連結隻用于記錄 , 部落格中有官方網站的下載下傳位址 , 可以一一下載下傳 ;