apk反编译/回编译

再次记录一次apk反编译/回编译过程,链接失效请留言,会及时更新。

参考博客: https://blog.csdn.net/w327918069/article/details/82761437

准备工具

  • apktool 2.4.0: 请自行github搜索瞎子啊
  • AndroidKiller_v1.3.1: [百度网盘](https://www.baidupcs.com/rest/2.0/pcs/file?method=batchdownload&app_id=250528&zipcontent=%7B%22fs_id%22%3A%5B908508934748719%5D%7D&sign=DCb740ccc5511e5e8fedcff06b081203:er%2F72tppfnpi594iaAgvRBDVVMc%3D&uid=3618094371&time=1566556023&dp-logid=5421758269795401179&dp-callid=0&vuk=3618094371&zipname=AndroidKiller__v1.3.1.

apk反编译

首先,我们需要一个apk,下图是Android Studio编写并打包的一个apk。

1.png

其实apk就相当于一个zip压缩包,通过WinRar工具可以对其解压缩,像这样:

1.png

看到了我们熟悉的AndroidManifest.xml文件,我们打开看一看:
1.png

OMG为什么是乱码呢?是因为Android在打包成apk时,会把部分xml文件编码为二进制文件,因此我们无法查看。

这就阻挡了我们码?

此时,祭出我们的神器---->apktool,当当当当~~~~~~~。
一行命令进行apk反编译:
apktool d -r app-debug.apk 一定要加入参数-r,不然后面回编译回报错。

1.png

此时再次打开文件AndroidManifest.xml就可以看到源文件了。

apk反编译到此结束。

apk回编译

回编译就是通过apk反编译生成的目录文件转换成一个apk。
十分简单的一行命令:
apktool b app-debug

1.png

在反编译目录中的dist目录就可以看到回编译生成的apk文件。

apk签名

此时安装apk到手机无法安装成功,还需要对apk进行签名才能安装。

1.生成key.keystore
keytool -genkey -alias key.keystore -keyalg RSA -validity 30000 -keystore key.keystore

1.png

我的电脑运行上面代码控制台乱码,设置控制台编码为GBK即可解决( 参考博客)
chcp 936
1.png

可以看到key.keystore已经生成。

2.对apk进行签名
可用于没有签名和已经签名的apk,再次签名。

jarsigner -verbose -keystore [keystorePath] -signedjar [apkOut] [apkin] [alias]

命令格式及参数意义:

-verbose -> 输出签名过程的详细信息

-keystore [keystorePath] -> 密钥的库的位置

-signedjar [apkOut] -> 签名后的输出文件名

[apkin] -> 待签名的文件名

[alias] -> 证书别名
jarsigner -verbose -keystore key.keystore -signedjar app-debug_signed.apk app-debug.apk key.keystore

1.png

回编译完成。

你可能感兴趣的:(apk反编译/回编译)