安卓逆向:AndroidKiller 反编译失败,无法继续下一步源码反编译!

1. 问题

  • 使用 Android Killer 进行 apk 文件反编译时,遇到“反编译失败,无法继续下一步源码反编译!” 报错。

报错内容:
当前 Apktool 使用版本:android 2.4.1
正在反编译 APK,请稍等...
I: Using Apktool 2.4.1 on chelaile_app.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: C:\Users\Administrator\AppData\Local\apktool\framework\1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values / XMLs...
I: Baksmaling classes.dex...
I: Baksmaling classes2.dex...
I: Baksmaling classes3.dex...
I: Baksmaling classes4.dex...
I: Baksmaling assets/A3AEECD8.dex...
Exception in thread "main" org.jf.dexlib2.dexbacked.DexBackedDexFileNotADexFile: Not a valid dex magic value: cf 77 4c c7 9b 21 01 cd at org.jf.dexlib2.util.DexUtil.verifyDexHeader(DexUtil.java:93) at org.jf.dexlib2.dexbacked.DexBackedDexFile.getVersion(DexBackedDexFile.java:111) at org.jf.dexlib2.dexbacked.DexBackedDexFile.<init>(DexBackedDexFile.java:78) at org.jf.dexlib2.dexbacked.DexBackedDexFile.<init>(DexBackedDexFile.java:138) at org.jf.dexlib2.dexbacked.ZipDexContainer1.getDexFile(ZipDexContainer.java:181)
at brut.androlib.src.SmaliDecoder.decode(SmaliDecoder.java:90)
at brut.androlib.src.SmaliDecoder.decode(SmaliDecoder.java:39)
at brut.androlib.Androlib.decodeSourcesSmali(Androlib.java:96)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:164)
at brut.apktool.Main.cmdDecode(Main.java:170)
at brut.apktool.Main.main(Main.java:76)
APK 反编译失败,无法继续下一步源码反编译!

2. 更新 APKTOOL

  • 下载地址:https://connortumbleson.com/apktool/,此处下载最新版本 apktool_2.4.1.jar

注意:如果 APKTOOL 已经是 apktool_2.4.1.jar 版本,则直接跳到第三步!

  • 打开 AndroidKiller,依次点击 Android -> APKTOOL管理器 -> 添加,得到下图弹窗;
image.png
  • 点击弹窗 路径 输入框尾部的文件及图标,根据前面的下载路径找到 apktool_2.4.1.jar,如下图:
image.png

3. 输入 APKTOOL 参数

  • 报错中提示是由于非法 dex,这是因为 apk 里有加密过后的 dex 文件,比如有些 apk 的 assets 目录下有加密后的 dex 文件,添加 –only-main-classes 参数即可;
  • 编辑 APKTOOL 弹窗 参数 输入框,输入参数 --only-main-classe

注意:这一步是关键,一定不能省略!

image.png
  • APKTOOL 管理器 弹窗尾部,重新选择默认的 Apktool 版本为 apktool_2.4.1.jar
image.png

4. 重启 AndroidKiller 并再次编译

  • 重启AndroidKiller,并再次编译 apk 文件,得到下图,编译成功。
image.png

你可能感兴趣的:(安卓逆向:AndroidKiller 反编译失败,无法继续下一步源码反编译!)