Android apk逆向:反編譯,回編譯,簽名,打包流程。
第一步: apk 反編譯。
1) 打開命令行窗口,輸入java -version, 檢測當前java版本,若版本較低, 則下載JAVA SE, 需要添加環境變量。
2) 需要下載apktool, 需要添加環境變量,然后再命令行窗口輸入apktool查看是否安裝成功。
3) 在C:\Users\XXX\AppData\Local 下新建一個apktool\framework目錄,否則反編譯時會有警告。
4) 命令行窗口,進入apk在文件夾,輸入: apktool d name.apk。會在當前目錄生成一個name的資源文件夾,里面存放apk包的資源。
第二步: apk 回編譯。
1)在命令行窗口輸入:apktool b name。新生成的apk會在name/dist/目錄下面。若報錯則輸入apktool -r b name,資源文件不反編譯,避免資源報錯
第三步: apk 簽名,打包,原文鏈接:https://blog.csdn.net/weixin_42741158/article/details/84978203
進入所裝java目錄的bin文件夾。(我的是C:\Program Files (x86)\Java\jdk1.8.0_181\bin)
輸入命令:keytool -genkey -alias abc.keystore -keyalg RSA -validity 20000 -keystore abc.keystore
(這里會讓輸入2次密碼,我都是輸123456)
您的名字與姓氏是什么?
[Unknown]: webyang
您的組織單位名稱是什么?
[Unknown]: webyang
您的組織名稱是什么?
[Unknown]: webyang
您所在的城市或區域名稱是什么?
[Unknown]: new york
您所在的省/市/自治區名稱是什么?
[Unknown]: new york
該單位的雙字母國家/地區代碼是什么?
[Unknown]: cn
CN=webyang, OU=webyang, O=webyang, L=new york, ST=new york, C=cn是否正確?
[否]: Y
查看當前bin目錄,生成了新文件:abc.keystore,把上面的test.apk放到這個bin目錄,再次運行:
jarsigner -verbose -keystore abc.keystore -signedjar testx.apk test.apk abc.keystore
發現生成了testx.apk,此apk為最終安裝版本。