APKTool 反編譯,打包,簽名


apktool 主要用於逆向apk文件。它可以將資源解碼,並在修改后可以重新構建它們。它還可以執行一些自動化任務,例如構建 apk

下載地址

https://ibotpeaches.github.io/Apktool/

https://bitbucket.org/iBotPeaches/apktool/downloads/

反編譯APK

命令格式:apktool d [ apk文件名 ]

進入到 apktool 所在目錄

.\apktool.jar d .\mlxx.apk

不行的話就用下面這個命令,前面加上 java -jar

java -jar .\apktool.jar d .\mlxx.apk

編譯成功之后會出現一個文件夾

  • AndroidManifest.xml

APP權限配置

程序入口

  • smali 文件(一種匯編代碼)

.smali可以和.dex相互轉換

修改APK代碼通常修改smali文件(重新修改.java源代碼 重新編譯的困難太大)

-baksmali.jar smali.jar對dex 和 smali文件做轉換

  • classes.dex

源代碼在classes.dex文件里

可以反編出.java代碼


重新打包

命令

apktool b 目錄

apktool b mlxx

如果不行

java -jar .\apktool.jar b mlxx

打包成功后目錄內會出現一個 dist 目錄,apk 就在里面


簽名

keytool jarsigner 工具是JAVA JDK自帶的

  • 生成證書

keytool -genkey -keystore my-release-key.keystore -alias my_alias -keyalg RSA -keysize 4096 -validity 10000

key dec
keytool 工具名稱(固定寫法)
)-genkey 執行的是生成數字證書操作(固定寫法)
-v 打印生成證書的詳細信息
-keystore myApp.keystore 生成的證書的文件名為"myApp.keystore"(根據需求,設置你的證書名)
alias myApp.keystore 證書的別名為"myApp.keystore"。(一般和上面的文件名相同,可以不同,但要記好,簽名時會用(A))
-keyalg RSA 生成密鑰文件采用的算法為RSA(固定寫法)
-validity 3000 該數字證書的有效期為30000天,30000天之后該證書將失效
  • 用證書給 apk 簽名

jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore my-release-key.keystore -signedjar super.mlxx.apk mlxx.apk my_alias

key dec
jarsigner 工具稱名(固定寫法)
-verbose 顯示出簽名詳細信息
-keystore myApp.keystore myApp.keystore 要使用的簽名證書文件
-signedjar android-release-signed.apk 簽名后的文件名
android-release-unsigned.apk 要簽名的文件
myApp.keystore 別名,即(A)步中的別名

未簽名APK不能在安卓手機上安裝

APP在啟動時會對簽名校驗,要逆APP,跳過校驗


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM