反编译apk_apktool使用

apktool 下载地址

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

安装说明

  1. 至少已安装Java 1.8吗?
  2. java -version在命令行/命令提示符下执行是否返回1.8或更高?
  3. 如果没有,请安装Java 8+并将其设置为默认值。(Java 7现在也可以使用)

安装Apktool

  • Windows

    1. 下载Windows包装程序脚本(右键单击,将链接另存为apktool.bat
    2. 下载apktool-2(在这里找到最新的
    3. 将下载的jar重命名为 apktool.jar
    4. 将两个文件(apktool.jarapktool.bat)移至Windows目录(通常为C://Windows
    5. 如果您无权访问C://Windows,则可以将这两个文件放在任何位置,然后将该目录添加到您的环境变量系统PATH变量中。
    6. 尝试apktool通过命令提示符运行
    7. 直接终端输入 apktool 会有提示信息就可以用了
    8. 如果想简单用下,只有在apktool 目录下
      1. java -jar apktool.jar
      2. java -jar apktool.jar d -f lei_wifi-release_108_1_360_sign.apk -o leida2
      3. image-20210507141313251

注意-包装脚本不是必需的,但很有用,因此您不必java -jar apktool.jar一遍又一遍地输入。

apktool 参数解释

反编译时注意: 没有添加 -s时(如果只是查看资源文件不不管)

java -jar apktool.jar d -f lei_wifi-release_108_1_360_sign.apk -o leida2

此时 dex 文件直接反编译成了 smali 文件,如果需要 .dex 文件。

image-20210507141639564

此时再运行:添加 -s

$ apktool d -s -f test.apk

image-20210507141705744

-d 反编译 apk 文件
-s 不反编译 dex 文件,而是将其保留
-f 如果目标文件夹存在,则删除后重新反编译

apktool重新打包

$ apktool b b_test -o newtest.apk

-b 是指 build
b_test 是刚才反编译出的文件所在的目录
-o 用于指定新的文件名称,这里指定为「newtest.apk」

注意:
此时的 apk 文件是不能安装的,还需要对其进行签名。

  • 对新的 Apk 进行签名:

签名文件生成

keytool -genkey -alias test -keypass 123456 -keyalg RSA -keysize 2048 -validity 36500 -keystore D:/keys/test.keystore -storepass 123456

注意:

1.路径什么的需要修改

2.alias别名需要修改

3.keysize1024位生成的是MD5withRSA的算法,2048位生成的是SHAwihtRSA的算法,我试了下好像不能直接改keyalg的算法,会报错

4.validity有效日期,天

5.输入这条语句后回车后会要输入一些信息,照着来即可

查看签名的信息

keytool -list -v -keystore 签名路径 -storepass 密码

查看apk签名信息

jarsigner.exe -verify APK文件路径 -verbose -certs

链接:https://www.zhihu.com/question/29370382/answer/590981557

打包apk

可用于没有签名和已经签名的apk,再次签名。

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

命令格式及参数意义:

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

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

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

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

[alias] -> 证书别名
————————————————

使用示例

jarsigner -verbose -keystore leida.keystore -signedjar apk_new.apk apk_fan.apk leida.keystore

原文链接:https://blog.csdn.net/qq_25506203/article/details/80899521

apk反汇编工具apktool问题之DexBackedDexFile$NotADexFile

添加: --only-main-classes

java -jar apktool.jar d -f 108_1_360_sign.apk -o leida2 --only-main-classes

posted @ 2022-12-15 16:39  木子墨墨  阅读(540)  评论(0编辑  收藏  举报