zoukankan      html  css  js  c++  java
  • 解决AndroidKiller APK 反编译失败,无法继续下一步源码反编译!

    报错背景

    今天使用AndroidKiller V1.3.1,反编译一个APK,遇到如下报错:

    当前 Apktool 使用版本:Android Killer Default APKTOOL
    正在反编译 APK,请稍等...
    >I: 使用 ShakaApktool 2.0.0-20150914
    >I: 正在加载资源列表...
    >I: 反编译 AndroidManifest.xml 与资源...
    >I: 正在从框架文件加载资源列表: C:Userslijie01apktoolframework1.apk
    >I: 常规资源列表...
    >I: 反编译资源文件...
    >I: 反编译 values */* XMLs...
    >Exception in thread "main" b.a.a.e: resource spec: 0x01010571
    >	at b.a.d.a.p.a(Unknown Source)
    >	at b.a.d.a.q.a(Unknown Source)
    >	at org.c.b.b.c.a(Unknown Source)
    >	at com.rover12421.shaka.a.b.p.a(Unknown Source)
    >	at b.a.d.a.p.b(Unknown Source)
    >	at b.a.d.a.w.a(Unknown Source)
    >	at b.a.d.a.w.a(Unknown Source)
    >	at b.a.d.a.a.t.d(Unknown Source)
    >	at b.a.d.a.a.t.a(Unknown Source)
    >	at b.a.d.a.a.u.h(Unknown Source)
    >	at b.a.d.a.a.w.a(Unknown Source)
    >	at b.a.d.a.a.w.a(Unknown Source)
    >	at b.a.d.a.a(Unknown Source)
    >	at b.a.d.a.c(Unknown Source)
    >	at b.a.a.b(Unknown Source)
    >	at b.a.E.a(Unknown Source)
    >	at b.b.a.a(Unknown Source)
    >	at b.b.a.a(Unknown Source)
    >	at com.rover12421.shaka.cli.Main.main(Unknown Source)
    APK 反编译失败,无法继续下一步源码反编译!
    

    解决

    参考这位大佬的博客:https://blog.csdn.net/u012400885/article/details/80409689 进行解决:

    下载新版本的Apktool地址:https://down.52pojie.cn/Tools/Android_Tools/

    然后打开AndroidKiller_v1.3.1路径,进行替换,注意名字要改成和原来一样的名字。

    更换好之后,重新运行AndroidKiller:

    当前 Apktool 使用版本:Android Killer Default APKTOOL
    正在反编译 APK,请稍等...
    >I: 使用 ShakaApktool 3.0.0-20170503
    >I: 正在加载资源列表...
    >I: 反编译 AndroidManifest.xml 与资源...
    >I: 正在从框架文件加载资源列表: C:Userslijie01AppDataLocalapktoolframework1.apk
    >I: 常规资源列表...
    >I: 反编译资源文件...
    >I: 反编译 values */* XMLs...
    >java.lang.NullPointerException
    >	at b.a.d.a.a.x.a(Unknown Source)
    >	at b.a.d.a.a.x.a(Unknown Source)
    >	at b.a.d.a.a(Unknown Source)
    >	at b.a.d.a.c(Unknown Source)
    >	at b.a.a.b(Unknown Source)
    >	at b.a.C.a(Unknown Source)
    >	at b.b.a.a(Unknown Source)
    >	at b.b.a.a(Unknown Source)
    >	at com.rover12421.shaka.cli.Main.main(Unknown Source)
    >Exception in thread "main" java.lang.IllegalArgumentException: expected element name 'style' and not 'resources'
    >	at org.e.a.a.c(Unknown Source)
    >	at b.a.d.a.a(Unknown Source)
    >	at b.a.d.a.c(Unknown Source)
    >	at b.a.a.b(Unknown Source)
    >	at b.a.C.a(Unknown Source)
    >	at b.b.a.a(Unknown Source)
    >	at b.b.a.a(Unknown Source)
    >	at com.rover12421.shaka.cli.Main.main(Unknown Source)
    APK 反编译失败,无法继续下一步源码反编译!
    

    虽然还是报错,但是注意看报错信息,已经报不同错了,
    >Exception in thread "main" java.lang.IllegalArgumentException: expected element name 'style' and not 'resources'

    继续搜索这个错误,然后根据这个大佬的文章进行如下步骤:https://www.bilibili.com/read/cv1785046/

    使用AndroidKillerPlugin

    下载

    下载地址:https://github.com/supperlitt/AndroidKillerPlugin/releases

    修改配置

    注意,一定要修改正确这个路径,不然AndroidKillerPlugin解压的文件不会解压到你本地的AndroidKiller路径下,还是会失败的。

    使用

    基本上都是报解压文件失败,这个时候自己手动压解一下就好。

    手动压解过程:

    在重新执行AndroidKillerPlugin,

    解压成功,

    如果项目比较大,那么这个过程就会稍微耗时长。

    反编译成功

    在历史工程中重新打开一下,

    反编译成功。

    总结

    学好使用原生apktool、dex2jar很重要,这样能更好理解Android反编译,并且遇到问题自己也能解决,不会像上面那样 工具报错了,自己没有排错的能力,只能查搜索引擎。

    后面会写文章介绍apktool、dex2jar的原理,喜欢可以给我留言、关注、点赞这样我就会有更大的动力,更快的出文章。

  • 相关阅读:
    how to pass a Javabean to server In Model2 architecture.
    What is the Web Appliation Archive, abbreviation is "WAR"
    Understaning Javascript OO
    Genetic Fraud
    poj 3211 Washing Clothes
    poj 2385 Apple Catching
    Magic Star
    关于memset的用法几点
    c++ 函数
    zoj 2972 Hurdles of 110m
  • 原文地址:https://www.cnblogs.com/mysticbinary/p/11609825.html
Copyright © 2011-2022 走看看