2016/09/10

Android APK 反組譯(反編譯)

在某些時候看到一些 App 的操作介面、執行方式、特殊技巧,

作為一個技術人員, 難免總會想知道它是如何實現的,

參考步驟, 如下 :

1) 取得 APK, 有兩種方式 :

方式一: 線上商店下載, 如 APKPure.com, 透過搜尋且找到 App 之後, 點擊 Download 即可下載 APK.

搜尋 :


點選 :


下載 :


方式二: 從手機中擷取 APK, 若對上述商店有安全性疑慮, 可以到在 Google Play 安裝好 App 後, 再透過 APK Extractor 將 APK 擷取出來.


2) APK 透過 Jadx 轉換為 Java.

首先, 解壓縮 Jadx.zip, 然後執行 bin / jadx-gui.bat, 可以選擇 .jar、.apk、.dex、.class 等類型檔案進行反組譯 :


點選你要查看的程式原始檔案 :




選擇 Menu: File > Save All 可以將所有檔案儲存到你指定的目錄中 :


注意事項: Jadx 儲存所有檔案, 只有包含文字模式的檔案 (如: .java, .xml), 並未包含 res 目錄內的二進位檔案 (如: .png).

3) APK 本身就是一個壓縮檔, 可以用一般壓縮軟體解壓縮之, 其中就包含 res 目錄內的所有原始檔 :


這樣, 有些 App 你想知道它是如何實現, 用哪些技術、哪些套件、程式邏輯 ... 等, 就可以有個方向可以探索了.