天天看點

【Android 安全】DEX 加密 ( 常用 Android 反編譯工具 | apktool | dex2jar | enjarify | jd-gui | jadx )

文章目錄

  • ​​一、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 種反編譯工具 : 該連結隻用于記錄 , 部落格中有官方網站的下載下傳位址 , 可以一一下載下傳 ;

【Android 安全】DEX 加密 ( 常用 Android 反編譯工具 | apktool | dex2jar | enjarify | jd-gui | jadx )

一、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 直接解壓 ,

【Android 安全】DEX 加密 ( 常用 Android 反編譯工具 | apktool | dex2jar | enjarify | jd-gui | jadx )

檢視其中的 AndroidManifest.xml 檔案 , 是無規則的亂碼 , 這是被 aapt 編譯後的資源檔案 , 無法檢視 ;

【Android 安全】DEX 加密 ( 常用 Android 反編譯工具 | apktool | dex2jar | enjarify | jd-gui | jadx )

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 目錄中 ;

​反編譯過程 :​

【Android 安全】DEX 加密 ( 常用 Android 反編譯工具 | apktool | dex2jar | enjarify | jd-gui | jadx )

檢視其中的 AndroidManifest.xml 檔案 , 可以看到真實的檔案内容 ;

【Android 安全】DEX 加密 ( 常用 Android 反編譯工具 | apktool | dex2jar | enjarify | jd-gui | jadx )

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 ;

​重新打包過程 :​

【Android 安全】DEX 加密 ( 常用 Android 反編譯工具 | apktool | dex2jar | enjarify | jd-gui | jadx )

二、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 檔案 ;

【Android 安全】DEX 加密 ( 常用 Android 反編譯工具 | apktool | dex2jar | enjarify | jd-gui | jadx )

三、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 檔案拖入到該工具的視窗界面即可 ;

【Android 安全】DEX 加密 ( 常用 Android 反編譯工具 | apktool | dex2jar | enjarify | jd-gui | jadx )

将 jar 檔案拖到視窗中 , 即可檢視反編譯出的 jar 檔案源碼 ;

【Android 安全】DEX 加密 ( 常用 Android 反編譯工具 | apktool | dex2jar | enjarify | jd-gui | jadx )

五、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 檔案 ,

【Android 安全】DEX 加密 ( 常用 Android 反編譯工具 | apktool | dex2jar | enjarify | jd-gui | jadx )

即可檢視該 apk 的源代碼與資源檔案 ;

【Android 安全】DEX 加密 ( 常用 Android 反編譯工具 | apktool | dex2jar | enjarify | jd-gui | jadx )

​該工具完成了上述

4

4

4 個工具的所有工作 , 但是閱讀代碼時 , 無法進行代碼跳轉 , 這就比較糾結了 , 在閱讀代碼方面不如 jd-gui 好用 ;​

​如果隻是簡單了解一下項目結構 , 或者擷取資源 , 可以使用該反編譯工具 ;​

​整理後的

5

5

5 種反編譯工具   該連結隻用于記錄 , 部落格中有官方網站的下載下傳位址 , 可以一一下載下傳 ;

繼續閱讀