天天看點

Android APK反編譯、重打包、重簽名

準備工作

  • dex2jar-2.0
  • apktools
  • jdk_gui

Apk反編譯

  • 個人覺得這兩個檔案直接放到 C:\Windows 下比較友善,打開dos指令可以直接使用
    Android APK反編譯、重打包、重簽名
  • 反編譯指令行
apktool d -f 需要反編譯的apk -o 反編譯生成的目錄
例如:apktool d -f E:\app-release.apk -o c:\AS
           

如圖:

需要反編譯的apk:

Android APK反編譯、重打包、重簽名

反編譯生成目錄:

Android APK反編譯、重打包、重簽名

注意:我這裡的dist是重打包生成的檔案夾,反編譯後是沒有值這個檔案夾的

反編譯指令:

Android APK反編譯、重打包、重簽名
  • 修改反編譯後的檔案

    目前我隻能去修改清單檔案種的一些東西,代碼修改這一塊還在研究。各位客官有什麼好的資料,也可以把資料分享給我.可以給我留言,謝謝!

    各位客官可以反編譯以後把清單檔案所有的類都改成橫屏或豎屏試試。

重打包

apktool b 你剛剛反編譯生成的目錄
例如:apktool b C:\AS
           
Android APK反編譯、重打包、重簽名

重打包後會生成這個檔案夾,重打包的apk就在裡面。

重新給apk簽名

jarsigner -verbose -keystore  你的keystore路徑或者AS生成的jks檔案路徑  -signedjar 簽名後生成的新apk路徑  需要簽名的apk路徑  你的簽名檔案的别名
例如:jarsigner -verbose -keystore  (換成你的簽名檔案E:\test.jks)  -signedjar E:\ts.apk(生成的新sign apk)   C:\tools\dist\powerstation.apk(代簽名的apk) 換成你簽名檔案的别名
           
Android APK反編譯、重打包、重簽名

密鑰庫就是的簽名檔案的密碼。

  • 生成新的簽名過後的apk
Android APK反編譯、重打包、重簽名

檢視源碼

  • 把classes.dex轉成jar包

    把下載下傳的apk可以用快壓縮打開,把classes.dex拷貝出來。

    我們需要借助一個工具,本人圖以後友善直接把dex2jar-2.0拷貝到c盤根目錄了。

    我們首先需要進入dex2jar-2.0的目錄C:\dex2jar-2.0,然後把classes.dex拷貝到該目錄下,最後用dos指令執行,就會在該目錄下生成一個新的jar包。

    Android APK反編譯、重打包、重簽名
    生成新的jar:
    Android APK反編譯、重打包、重簽名
  • 檢視源碼

    我們可以用jdk-gui檢視:

    Android APK反編譯、重打包、重簽名

到這裡反編譯、重打包、重簽名、修改檔案(目前隻介紹了修改清單檔案,修改别人的源碼這塊還不知道怎麼去改)。歡迎各位客觀留言,指出不足!