Android apk逆向:反编译,回编译,签名,打包。

时间:2021-07-23 12:01:49

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包的资源。

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