APK反编译流程详解

  1. 反编译apk
    1
    java -jar /d/studies/Decompile/apktool_2.7.0.jar d source.apk -o output
  • 将.dex转换为.jar

    1
    /d/studies/Decompile/dex-tools-v2.4/d2j-dex2jar.sh classes.dex -o classes.jar
  • 利用jd-gui查看classes.jar

    1
    java -jar /d/studies/Decompile/jd-gui-1.6.6.jar classes.jar
  • 利用jadx直接反编译apk

    1
    /d/studies/Decompile/jadx-1.5.1/bin/jadx-gui your-app.apk

反编译后重新签名

  1. 修改后重新编译成未签名的apk
    1
    java -jar /d/studies/Decompile/apktool_2.7.0.jar b output -o target.apk --use-aapt2

–use-aapt2 参数指定使用AAPT2工具进行构建,这通常能更好地处理资源文件

  • 4字节对齐
    1
    zipalign.exe -v 4 target.apk aligned_target.apk
  1. 签名apk

    1
    apksigner.bat sign -ks androidapp.jks --out signed_target.apk aligned_target.apk
  2. 验证签名

    1
    apksigner.bat verify .\signed_target.apk