mac下apk反編譯整合工具jadx
阿新 • • 發佈:2018-12-31
在jadx出現之前,我一般是使用apktool和dex2jar這兩個Android反編譯工具。這兩個工具也有不同的側重點,如果只是想拿到apk裡的一些圖片或其他資源或是檢視一下佈局的layout檔案,直接使用apktool
-d xxx.apk
即可。如果是要檢視一下程式碼實現,就使用d2j-dex2jar.sh
反編譯一下apk然後使用jd-gui工具檢視反編譯後的.jar檔案。
apktool+dex2jar+jd-gui一直是一個比較流行的Android反編譯組合。
在使用過jadx之後覺得jadx相比上面的組合具有如下兩個優點:
- 可以直接反編譯出.java檔案
- 檢視原始碼時直接顯示資源名稱,而不是像jd-gui裡顯示的資源ID
安裝jadx
編譯安裝
git clone https://github.com/skylot/jadx.git
cd jadx
./gradlew dist
然後將build/jadx/bin加入到環境變數。
直接下載安裝
使用jadx
jadx也有GUI,直接雙擊bin目錄下的jadx-gui,然後選擇要反編譯的apk即可,執行效果如下。
如果要儲存原始碼,選擇File->Save ALL即可儲存檔案,然後就可以匯入Android Studio等IDE中。
我們也可以直接使用命令列反編譯apk檔案:
jadx -d out classes.dex #直接輸出.java檔案到out目錄
jadx-gui classes
在反編譯較大的apk時,如果遇到jadx-jui卡頓和假死的情況,可適當優化jvm相關引數,
我直接在~/.bash_profile
中加上了如下語句:
export JVM_ARGS="-Xmx4096m -XX:MaxPermSize=1024m"