.dex → .jar (GitHub: pxb1988/dex2jar).jar → 可閱讀 Java 代碼 (官網: java-decompiler.github.io)app.apk 改名為 app.zip 並解壓,取得 classes.dex (或 classes2.dex 等分包)。classes.dex 放入 dex2jar 目錄,執行:d2j-dex2jar.bat classes.dex (Windows)./d2j-dex2jar.sh classes.dex (Linux/Mac)classes-dex2jar.jar。classes*.dex,需全部轉換並合併查看。a、b,邏輯仍可閱讀,配合 mapping.txt 可還原原名 (若開發者發布)。DexClassLoader 運行時加載,需在執行時從記憶體 Dump (如 adb shell am dumpheap + jhat)。| 現象 | 原因 | 對策 |
|---|---|---|
| JD-GUI 顯示「源碼不可用」 | 類別檔損壞或非標準字節碼 | 嘗試 CFR、Fernflower 等替代反編譯器 |
| 資源檔 (layout/xml) 亂碼 | Apktool 未正確解碼 | 使用 apktool d -r app.apk 保留原始資源 |
| Native 庫 (.so) 無法分析 | 屬機器碼,非字節碼 | 需 IDA Pro、Ghidra 等逆向工具 |