apk反编译工具哪个好用,这里带来Apktool M这款专为安卓机打造的反编译神器。能够反编译及回编译apk,同时安装反编译系统apk所需要的framework-res框架,清理上次反编译文件夹等功能。它可以完整解包APK,解包后你可以看到 APK 里面的声明文件、布局文件、图片资源文件、由 dex 解包出来的 smali 文件、语言文件等。如果你要汉化、修改界面、修改代码的话,apktool 可以帮你一站式完成。
软件介绍
1.支持对apk反编译、打包、拆分、合并、签名等。
2.拥有语法高亮和强大的代码提示文件编辑器,能查看源java代码、对关键字、类、方法和字段进行提示。
3.拥有许多功能的文件管理器,可以安装、拆分、打包不同类型的安卓文件格式(apks/xapk/apkm)。
如何使用
1 配置 apktool 工具环境
2 使用 apktool 解压、重新打包与签名
解压 apk 文件。执行命令示例: apktool d-f-s-o a_dev a.apk重新打包为 apk,执行命令示例: apktool b a_dev-o a_unsigned.apk对重新打包的 apk 文件签名。
jarsigner 参数说明:
keystore 参数指定您的私钥的绝对路径,例如: a.keystoresignedjar 参数指定签名后apk文件存放的路径,例如 a_signed.apk[未签名的文件路径] 指定要签名apk文件的路径,例如 a_unsigned.apk[证书别名] 是指创建密钥时设置的证书名称。
2.1 秘钥证书:生成一个 keystore 文件
执行如下命令,生成 abc.keysotre 文件。需要输入密码时,输入为 123456。
2.2 签名示例:使用 jarsigner 重新签名 apk 文件
使用 jarsigner 基于 abc.keystore 对 a_unsigned.apk 签名,生成已签名的 a_signed.apk 文件:
查看文件 a_signed.apk 的签名信息:
keytool -printcert -jarfile a_signed.apk
2.3 jarsigner 签名问题:找不到证书链
在使用 Android Studio 生成的密钥执行签名命令时,遇到如下错误提示:
jarsigner: 找不到a.keystore的证书链。a.keystore必须引用包含私有密钥和相应的公共密钥证书链的有效密钥库密钥条目。
这是因为 证书别名不对。可以执行如下命令查看其别名:
# 假若安装了 Android Studio, 则会生成一个默认的秘钥证书:# - 其默认位置在 <用户目录>/.android/debug.keystore# - 默认别名为:androiddebugkey# - 默认密码为:android# 查看 debug.keystore 信息keytool -list -v -keystore debug.keystore# 查看 xxx.jks 秘钥证书信息keytool -list -v -keystore xxx.jks
输出信息参考如下:
输入密钥库口令:
密钥库类型: JKS 密钥库提供方: SUN
您的密钥库包含 1 个条目
别名: androiddebugkey 创建日期: 2019-1-7 条目类型: PrivateKeyEntry 证书链长度: 1 证书[1]: 所有者: C=US, O=Android, CN=Android Debug 发布者: C=US, O=Android, CN=Android Debug 序列号: 1
可以看到这里的 证书别名为 androiddebugkey。
2.4 签名示例:使用 apksigner 重新签名 apk 文件
jarsigner 是 Java JDK 提供的 jar 文件通用签名工具,只支持 V1 签名校验。
从 Android 7.0 开始, 谷歌增加新签名方案 V2 Scheme (APK Signature)。在 AndroidSDK 中提供了 apksigner 等用于 apk 签名。
AndroidSDK/build-tools//apksignerAndroidSDK/build-tools//zipalign使用 zipalign 执行包对齐优化:
# 4字节对齐优化zipalign -v 4 a_unsgined.apk a_unsgined_4.apk# 检查 APK 是否对齐zipalign -c -v 4 a_unsgined.apk
使用 apksigner 执行 V2 签名:
apksigner sign --ks abc.keystore --ks-key-alias abc.keystore --out a_signed_v2.apk a_unsigned_4.apk
查看签名信息:
apksigner verify -v --print-certs a_signed_v2.apk
∨ 展开