在刚开始安卓逆向时遇到了一个很坑爹的问题,就是对apk进行反编译后不能重新打包, 查了一些资料,这里就简单说一下用apktool进行解包和打包的整个过程。
apktool: Apktool - A tool for reverse engineering 3rd party, closed, binary Android apps.
首先把一个apk和apktool放到同一目录下,打开shell(我这里是power shell,用平常的shell也一样),输入
java -jar .\apktool_2.3.0.jar d .\app-debug.apk -o QKSword
格式为: java -jar apktool的名字 d(反编译) 要解包的apk -o(输出) 文件夹名
成功后可以看到解包出来的文件夹,然后可以对内容进行修改
当我们修改完之后可以进行重新的打包,
java -jar .\apktool_2.3.0.jar b .\QKSword\ -o new.apk
格式为: java -jar apktool的名字 b(打包) 要打包的文件夹名字 参数 生成的新apk名称
借鉴:APK反编译和重新打包_不忘初心-CSDN博客_apk反编译后重新打包
生成签名文件:
通过cmd命令行来生成keystore文件。
1.寻找到你的jdk的bin目录下
cmd命令
一般jdk都在你的C:\Program Files\Java文件夹下面
通过这段命令直接进入jdk bin文件夹下面 cd C:\Program Files\Java\jdk1.8.0_91\bin
命令行进入jdk bin文件夹底下
2.再输入keytool命令行,回车生成帮助方法
keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore
按照命令依次输入
相关签名信息的输入
这里面就是相关的签名的信息的输入了
最后再次确认密钥的输入就完成了
密钥确认
签名文件
链接:https://www.jianshu.com/p/c419e54e7492
生成签名APK
但是,这个apk并不能安装,因为需要重新签名。继续在cmd执行命令:
jarsigner -verbose -keystore android.keystore -signedjar 新的.apk 原来的.apk android.keystore
jarsigner -verbose -keystore android.keystore -signedjar lht3sigh.apk zbqcc.apk android.keystore
注意:需要输入生成签名文件时的密码。
lht3sigh.apk 为可安装文件。
验证签名:jarsigner -verify -verbose -certs lht3sigh.apk