1. 程式人生 > 其它 >使用ApkTool逆向工程安卓apk

使用ApkTool逆向工程安卓apk

ApkTool是一個非常使用的安卓apk逆向的工具,它可以將資源解碼為幾乎原始的形式,並在進行一些修改後重建它們,更好的幫我們在開發過程中去新增一些功能進行校驗或者分析應用程式等等。當然請不要用於盜版和其他非合法用途。(下面的流程都是基於Windows環境)

1.安裝

  • 在ApkTool的首頁可以找到安裝文件,下載對應平臺的jar,然後按照教程一步步操作安裝即可。這裡推薦windows平臺將工具配置到環境變數中,更容易操作

2.解包

  • 建立一個工作目錄,將我們需要解包的apk剪下到此處(這裡我舉例apk為test.apk)。在此資料夾處開啟cmd視窗,輸入apktool d test.apk
    ,回車將在我們建立的工作目錄下解包產生一個test的資料夾,開啟你可以發現有原始的Android工程目錄,就可以進行你的修改啦。

3.合包

  • 使用命令apktool b -o test1.apk test --use-aapt2,這裡為什麼要指定使用appt2來構建是因為Android Gradle外掛3.0.0及更高版本預設情況下會啟用 AAPT2去構建資原始檔,而apktool內部預設的還是使用aapt,可能會導致構建apk失敗。(如果確認apk無aapt2構建可以無需新增use-aapt2指令)。執行完畢後,可以發現當前目錄下會產生test1.apk檔案

4.重籤

使用Sdk內建的apksigner.bat指令碼檔案為我們的test1.apk進行重籤。首先我們需要有一個簽名證書(keystore),可以參考[官方文件][3]生成簽名檔案。然後輸入我們的重籤指令:
apksigner.bat絕對路徑 sign --v1-signing-enabled true --v2-signing-enabled true --ks keystore絕對路徑 --ks-key-alias 你設定的別名 --ks-pass pass:你設定的密碼 --in test1.apk


即可得到我們新的apk,開始我們的測試吧!