打包到指定目录_安卓apk反编译、重新打包、签名全过程

本文详述了安卓apk的反编译、重新打包和签名全过程。使用apktool进行反编译,获取资源文件;通过dex2jar将APK转为Java源代码;使用jd-gui查看源代码;最后讲解如何生成keystore文件并用jarsigner对apk进行签名,以确保其可安装使用。
摘要由CSDN通过智能技术生成

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

资源文件获取,可以提取出图片文件和布局文件进行使用查看

还可以将反编译之后的apk重新打包成apk文件,但需要重新签名,才能安装使用

dex2jar:https://sourceforge.net/projects/dex2jar/

将APK直接反编译成Java代码(目录下包含的一个classes.dex文件反编译为classes-dex2jar.jar)

jd-gui.jar:http://java-decompiler.github.io/

直接查看classes-dex2jar.jar文件(源代码)

下载好放在同一个文件

bfb7e6c7bc70c5a44dfe5b2b11864446.png

使用apktool

1. 反编译apk得到图片、XML配置、语言资源等文件

运行可执行jar包的命令是:

java -jar apktool_2.0.1.jar d -f apk包的位置 -o 输入名字

b7f08b9c2d87a6fb494f92b919113e90.png

编译成功会生成CCC的文件夹 ,可更改xml配置文件

175f2a4280063c756483250ea47540eb.png

2.重新打包apk

java -jar apktool的名字 b(打包) 要打包的文件夹名字

bbf176c444e0288ce1af23f5fccf138a.png

CC(打包的文件夹名字)目录下面生成一个dist目录,里面就是重打包之后的apk,但是这个apk没有签名,需要重新签名之后,才能安装。

28bd9a921f745f839c8dde411498e832.png

3.签名过程

生成keystore文件

keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore

执行该命令会生成一个dabao.keystore证书文件。

  • -genkey 产生证书文件
  • -alias 产生别名
  • -keystore 指定密钥库的.keystore文件中
  • -keyalg 指定密钥的算法,这里指定为RSA(非对称密钥算法)
  • -validity 为证书有效天数,这里我们写的是40000天
d50a4eac09c7641e5f570db560e2c369.png
95c190f0f15a8a7a815daa83fee8ddc1.png
apk重新签名

将dist目录下的apk拷贝到d:apktool目录,执行下面命令

jarsigner -verbose -keystore demo.keystore demo.apk demo.keystore

  • rbose 指定生成详细输出
  • -keystore 指定数字证书存储路径
9d1d5dd988fbb51137bd3d16c6208cb9.png

查看签名:

keytool -list -printcert -jarfile app-release.apk

8fe548c1d73b465d4260f85e157e5cc4.png

使用dex2jar获取源代码源代码

将要反编译的APK后缀名改为.zip,解压得到其中的classes.dex文件(java文件编译再通过dx工具打包而成的文件)

将获取到的classes.dex放到之前解压出来的工具【dex2jar-2.0】文件夹内

9f9f83f18c576563e0ed0a33d63f3209.png

执行:

d2j-dex2jar classes.dex

81a59b5b973cf2e4a067dfa6e7e0c8d3.png

成功会生成classes-dex2jar.jar 文件(源代码件)

dfa2d714dad999ae0f6f197c1365f837.png

查看源代码

使用jd-gui.exe 打开classes-dex2jar.jar 即可查看代码信息

2bf4b19739378ef5036607c4cda127df.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值