美文网首页
反编译apk遇到的问题

反编译apk遇到的问题

作者: 淮左明都 | 来源:发表于2019-11-21 19:39 被阅读0次

    下面的记录是在我敲入以下命令后遇到的错误:(相信学习逆向的同学一定不会生疏:)

    apktool b -f E:\decode -o E:\Decompile.apk 
    
    1. 回编译出现文件名或扩展名太长错误
      解决方案:减少apktool.yml文件中doNotCompress不加密的文件

    2. 回编译出现“class not find brut.androidlib.meta.MetaInfo”
      解决方案:删除apktool.yml文件中的第一行代码【!!brut.androidlib.meta.MetaInfo】

    3. aapt处理时提示“First type is not attr!”
      解决方案:aapt版本出现问题,替换当前最新的版本,别忘记apktool中还有aapt版本

    4. apktool反编译的时候出现警告【counld not write to 文件路径】
      解决方案:配置apktool相对路径

    5. 对于回编译的时候出现方法数超出限制
      解决方案:尝试将smali中的文件转移到其他smali_classes路径下(smali_classes2,smali_classes3…等等)

    6. 出现【java.lang.UnsupportedClassVersionError】
      解决方案:调整java与javac的版本匹配

    7. 回编译出现系统资源找不到
      解决方案:更新android.jar到最新的系统框架

    8. 出现一些适配res目录中属性找不到或报错的情况
      解决方案:可以暂时删除当前属性,或把整个适配文件也删除

    9. 有些包直接修改了包名后,出现找不到R文件的情况
      解决方案:需要再一次编译R文件后再回编译

    10. 出现回编译前后包体大小发生重大变化
      解决方案:调整apktool.yml中doNotCompress文件集合,使得有些文件需要压缩

    11. 回编译的时候,日志显示不是PNG图片
      解决方案:找到相应的图片,用图片工具重新转换PNG格式

    12. 回编译出现找不到complieSdkVersion、compileSdkVersionCodename
      解决方案:更新android.jar最新版本

    13. 编译出现【java.lang.UnsupportedClassVersionError】
      解决方案:当前电脑的jdk版本过低

    14. 编译后包体出现微信闪退
      解决方案:需要再微信activity中加入configChanges="screenSize"

    15. 运行包体崩溃,日志显示:【java.lang.NoSuchMethodError:NO static method checkSelfPermission】
      解决方案:更新support-V4包

    16. 运行包体崩溃,日志不明显
      解决方案:查看新加入的sdk是否存在so库,如果有,请保持和母包同样的环境目录,如果没有,再查看是否时jar冲突

    17. 运行包体,支付闪退
      解决方案:删除manifest中对应支付组件样式资源

    18. 出现MalformedByteSequenceException:2字节的UTF-8序列的字节2无效
      解决方案:Manifest文件中存在中文字符,出现乱码

    19. icon不对
      解决方案:替换所有涉及icon的目录下的资源

    20. 反编译失败,出现serializeToResValuesXml
      解决方案:修改apktool命令 带上-r

    21. 回编译报错,出现找不到的资源
      解决方案:删除找不到的资源的索引信息

    22. R文件各种找不到
      需要将apktool和aapt工具同步升级到最新版本。

    23. 方法个数过多(超过65535)
      “Exception in thread "main" org.jf.util.ExceptionWithContext: Unsigned short value out of range: 71412”,需要将多余的smali文件,移到smali_classes2,smali_classes3…等等,目前最多支持5个,应该够用了。


    解决方案:QuickSdk一游戏母包如何解决方法数超限

    23、可以正常构建,运行在设备上会出现各种类文件缺失
    一般是smail文件过多导致自动删减了部分代码有关,建议分dex包处理或者耐心点,缺失哪个文件补哪个。

    注意:
    1、编译和回编译最好使用同一个apktool操作
    2、apktool中记得需要及时更新Android框架版本
    3、apktoo2.1一下默认对assets下加密的,高于2.1版本默认时不加密的,需要自己手动加密,具体需要加密的文件后缀参考apktool源码中说明信息
    4、出现aapt版本也需要升级,注意要考虑aapt2的影响
    5、打包过程注意jar冲突
    6、打包后运行不正常,排查母包是否限制包名,签名
    7、出现其他异常编译或回编译异常的情况,可以尝试更换apktool版本

    大部分内容转自这篇blog:聚合sdk打包问题处理
    一小部分是自己补充,后面遇到问题会陆续更新,就当记录和共享~

    共勉

    相关文章

      网友评论

          本文标题:反编译apk遇到的问题

          本文链接:https://www.haomeiwen.com/subject/lcwqvctx.html