反編譯利器Apktool和Dex2jar匯入原始碼以及編譯除錯
0x01 Apktool原始碼下載與匯入
1.1 apktool原始碼下載
1.2 匯入
開啟Android Studio,選擇Open an existing Android Studio project,選擇Apktool資料夾匯入。
0x02 編譯並除錯Apktool原始碼
2.1 編譯
在Android Studio下面的Terminal中輸入./gradlew build fatJar,即可編譯成功。生成的jar包位於Apktool/brut.apktool/apktool-cli/build/libs/apktool-cli.jar。這個jar包就是我們經常用的apktool.jar。
2.2 除錯
2.2.1 首先進入這個目錄下,在main函式處下斷點。點選右鍵Debug Main.main。
此時Debug執行的結果是錯誤的,目的是生成Edit Configurations,如下圖:
2.2.2 點選Edit Configurations,點選左上角的+號,建立Jar Application。
2.2.3 編輯Jar Application,來除錯jar包。
Path to JAR選擇Apktool/brut.apktool/apktool-cli/build/libs/apktool-cli.jar,Program arguments選擇要除錯的apk。
2.2.4 點選debug apktool,即可以停留在Main.main下的斷點處。
0x03 Dex2jar原始碼下載與匯入
3.1 Dex2jar原始碼下載
3.2 匯入
開啟Android Studio,選擇Open an existing Android Studio project,選擇Dex2jar資料夾匯入。
0x04 編譯Dex2jar原始碼
在Android Studio下面的Terminal中輸入./gradlew build,即可編譯成功。生成的可以使用的包位於dex-tools/build/distributions/dex-tools-2.1-SNAPSHOT.zip
解壓這個zip包,如下:
有沒有很熟悉,這就是我們經常使用的dex2jar指令碼,這樣我們可以隨時使用最新版的dex2jar。