【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 應用的 555 種常用工具 , apktool , dex2jar , enjarify , jd-gui , jadx ;
整理后的 555 種反編譯工具 : https://download.csdn.net/download/han1202012/13097008 , 該鏈接只用于記錄 , 博客中有官方網站的下載地址 , 可以一一下載 ;
一、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.apk2、直接解壓
將 apk 直接解壓 ,
查看其中的 AndroidManifest.xml 文件 , 是無規(guī)則的亂碼 , 這是被 aapt 編譯后的資源文件 , 無法查看 ;
3、使用 apktool 反編譯
執(zhí)行 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.apkb 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 的源代碼與資源文件 ;
該工具完成了上述 444 個工具的所有工作 , 但是閱讀代碼時 , 無法進行代碼跳轉 , 這就比較糾結了 , 在閱讀代碼方面不如 jd-gui 好用 ;
如果只是簡單了解一下項目結構 , 或者獲取資源 , 可以使用該反編譯工具 ;
整理后的 555 種反編譯工具 : https://download.csdn.net/download/han1202012/13097008 , 該鏈接只用于記錄 , 博客中有官方網站的下載地址 , 可以一一下載 ;
總結
以上是生活随笔為你收集整理的【Android 安全】DEX 加密 ( 常用 Android 反编译工具 | apktool | dex2jar | enjarify | jd-gui | jadx )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 异步操作】Handle
- 下一篇: 【Android 安全】DEX 加密 (