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为最终安装版本。