1. 程式人生 > >Android安全/應用逆向--25--使用Apktool解包並打包

Android安全/應用逆向--25--使用Apktool解包並打包

7-2、使用Apktool解包並打包

目前apktool是最通用的解包及二次打包工具。

需要注意的是,APKtool使用不當會導致區域格式化,後果相當嚴重!因此我們通常使用以下架構:

1、 新建資料夾A:存放第一次解包後的檔案

D:\A\xxxxxxxxx

2、 新建資料夾B:存放第一次打包後的檔案

D:\B

3、 新建資料夾C:第一次打包後的檔案存入

D:\C\B

4、 需要測試的APK

使用不當的說明:

apk檔案路徑:D:\test.apk
解包目標目錄:D:\

然後你就等著D盤被格式化吧

操作步驟如下:

注意:首先cd到apktool的目錄下,如果目錄下有多個apktool,則apktool.jar時帶上版本號

對於apktool2.0以後的版本:

java -jar apktool.jar d -f <apk檔案路徑> -o <解包目標資料夾>  
//可以解出所有包,解包到資料夾A
---------------------------------------------------------------------------------------------------
對於apktool1.x版本解包為:

java -jar apktool.jar d -f <apk檔案路徑>  <解包目標資料夾>  
//少了-o。且只能解出smali包,解包到資料夾A

改包(手改/改程式碼等)

打包檔案:

Java -jar apktool.jar b -f <待打包的資料夾> -o <輸出apk路徑>  
//按照架構,即將A資料夾打包輸出到B資料夾

將打包後的B檔案移動到C資料夾下,並對B進行簽名,即可得到修改後可以使用的APK安裝包

java -jar signapk.jar testkey.x509.pem testkey.pk8 待簽名apk檔案路徑 簽名後輸出apk路徑
//得到CB.apk

篡改完畢,安裝即可。