安卓逆向手动解包-打包流程

起因

由于大多教程教学修改apk包都是用androidkiller,但是本人尝试发现,一部分安装包会出现解包错误,或者打包后无法安装的情况,因此,摸索了许久,学会了手动拆包和打包

准备工具

下载地址
apktool:https://apktool.org/
android-sdk(其中的zipalign,apksigner):https://developer.android.google.cn/tools/releases/platform-tools?hl=zh-cn
java-sdk(其中keytool):https://www.oracle.com/cn/java/technologies/downloads/

解包命令

apktool d input.apk -o outputdir

其中input.apk是你要解包的apk,outputdir是解包后保存的文件夹
解包后就可以对apk进行愉快的修改了

打包

打包压缩

apktool b inputdir -o output.apk

其中inputdir是你要解包路径(刚刚解包的apk路径),output.apk是打包后apk路径
值得注意的是:如果不填-o output.apk的参数默认打包在inputdir中的dest文件夹中
对齐
重点:在android10+后apk要进行对齐,否则会安装失败这是为什么你apk安装不上

 zipalign.exe -v -p 4 input.apk output.apk

其中4是对齐的字节(以4字节对齐)
可以通过这条命令来可以检测apk是否对齐

zipalign.exe -v -c input.apk

签名

apksigner.bat sign --ks input.jks --v1-signing-enabled true --v2-signing-enabled true --out output.apk input.apk

--v1-signing-enabled true --v2-signing-enabled true启用v1/v2签名
--ks input.jks签名文件
那么问题来了input.jks在哪里可以获得呢?
其实也非常的简单

keytool -genkeypair -keyalg RSA -keypass 123456 -storepass 123456 -keysize 2048 -validity 3650 -keystore output.jks

其中
-keyalg RSA 加密方式RSA
-keypass 123456 密钥的访问密码(保护私钥)
-storepass 123456密钥库的访问密码(保护整个 .jks 文件)
-keysize 2048密钥长度(2048 位,安全性较高)
-validity 3650证书有效天数(10 年)
-keystore output.jks生成的密钥库文件名

作者:ClownLMe原文地址:https://www.cnblogs.com/ClownLMe/p/18814424

%s 个评论

要回复文章请先登录注册