dex2jar 报错 com.googlecode.d2j.DexException: not support version

news2024/12/25 9:03:10

目录

一.问题发现

二.调查原因:

三. 根本原因调查:

四.解决问题


一.问题发现

使用dex2jar工具反编的时候,一输入指令,结果报com.googlecode.d2j.DexException: not support version错误(如下图)

                                                                 异常情况.png

二.调查原因:

谷歌对dex文件的介绍:常量数组/字符串 DEX_FILE_MAGIC 是字节列表,这类字节必须出现在 .dex 文件的开头,以便系统将其原样识别。该值会特意包含一个换行符("\n"0x0a)和空字节("\0"0x00),以便协助检测某些形式的损坏问题。该值还可以将格式版本号编码为 3 个十进制数字;随着格式的演变,预计该值会单调递增。

注意:Android 9.0 版本中新增了对 039 版格式的支持,其中引入了两个新字节码 const-method-handleconst-method-type。(字节码集合的总结表中介绍了这些字节码。)在 Android 10 中,版本 039 扩展了 DEX 文件格式,以包含仅适用于启动类路径上的 DEX 文件的隐藏 API 信息。

注意:Android 8.0 版本中新增了对 038 版格式的支持。038 版本中添加了新字节码(invoke-polymorphicinvoke-custom)和用于方法句柄的数据。

注意:Android 7.0 版本中新增了对 037 版格式的支持。在 037 版本之前,大多数 Android 版本都使用过 035 版格式。035 版与 037 版之间的唯一区别是,是否添加默认方法以及是否调整 invoke

简单地说:就是Android Studio中配置的minSdkVersion参数对应的系统版本是多少,dex文件头就会是多少

例如:minSdkVersion配置成24(对应7.0的系统),编译出来的dex头为037版本(使用notepad++打开dex文件就可以看到)

android {
    ......
    defaultConfig {
        ......
        minSdkVersion 24
        ......
    }

 

                                                        编译出来的dex文件.png

三. 根本原因调查:

​ 其实看了调查三就已经有方案了,就是修改dex文件中的版本信息就可以。但是不知道根本原因心里不甘心,继续调查。

​ 根据报错信息看:com.googlecode.d2j.reader.DexFileReader.<init>(DexFileReader.java:151)

​ 猜测是reader.DexFileReader的构造方法中报出来的错误,打开dex2jar-2.0\lib目录,将dex-reader-2.0.jar或者dex-reader-api-2.0.jar丢进jd-gui工具中看看源码如下:

// 构造方法中找到报错点
public DexFileReader(ByteBuffer in){
        ......
        int version = in.getInt() & 0xFFFFFF;
        if ((version != 3486512) && (version != 3552048)) {
          throw new DexException("not support version.");
        }
        skip(in, 32);
        ......
    }
    .....
}

// 支持的版本定义
private static final int MAGIC_035 = 3486512;
private static final int MAGIC_036 = 3552048;

 

意味着dex2jar-2.0工具只支持035和036版本协议!!!

四.解决问题

​ 使用notepad++文件浏览工具(任何能打开文件的工具都可以,例如记事本...)打开dex文件,修改版本信息037为036或者035,然后保存文件即可,再使用反编指令:d2j-dex2jar.bat classes.dex 反编即可成功。

                                                        修改dex版本信息后.png

 

                                                正常获得jar包.png


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/585102.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Autosar之自签名证书与CA证书

文章目录 一、安全传输1.框架2.如何实现传输安全&#xff1f;3. 对称加密和非对称加密的区别&#xff1f;4.伪随机数和真随机数5.数字签名 —— 验证完整性 & 认证数据来源6.为什么使用摘要算法的数字签名可以验证完整性&#xff1f;7.为什么数字签名可以认证数据来源&…

南开大学计算机考研分析

关注我们的微信公众号 姚哥计算机考研 更多详情欢迎咨询 南开大学&#xff08;B&#xff09;考研难度&#xff08;☆☆☆☆☆☆&#xff09; 南开大学计算机学科的研究工作始于1958年&#xff0c;是在实力雄厚的数学学科和物理学科的基础上发展起来的&#xff0c;是我国最早…

关于Gitee上传代码以后主页没有显示贡献度(没有显示小绿块)

事情起因&#xff1a;在一个闲暇的下午&#xff0c;吃着火锅唱着歌&#xff0c;突然&#xff01;我发现我的Gitee有一片白 起初&#xff0c;没有人在意这场灾难 当我首次发现这个问题的时候&#xff0c;我毫无波澜的认为是Gitee出现了BUG。因为我的这些空白天数里都是有提交的…

Linux fork—进程控制

程序和进程 程序&#xff1a;是指编译好的二进制文件&#xff0c;在磁盘上&#xff0c;不占用系统资源(cpu、内存、打开的文件、设备、锁…)。进程&#xff1a;是一个抽象的概念&#xff0c;与操作系统原理联系紧密&#xff0c;进程是活跃的程序&#xff0c;占用系统资源&…

【备战秋招】每日一题:4月1日美团春招(二批)第二题:题面+题目思路 + C++/python/js/Go/java带注释

2023大厂笔试模拟练习网站&#xff08;含题解&#xff09; www.codefun2000.com 最近我们一直在将收集到的各种大厂笔试的解题思路还原成题目并制作数据&#xff0c;挂载到我们的OJ上&#xff0c;供大家学习交流&#xff0c;体会笔试难度。现已录入200道互联网大厂模拟练习题&…

大数据分析案例-基于Adaboost算法构建糖尿病预测模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

华为OD机试之打印机队列(Java源码)

打印机队列 题目描述 有5台打印机打印文件&#xff0c;每台打印机有自己的待打印队列。 因为打印的文件内容有轻重缓急之分&#xff0c;所以队列中的文件有1~10不同的代先级&#xff0c;其中 数字越大优先级越高 打印机会从自己的待打印队列中选择优先级最高的文件来打印。 如…

5月29号软件资讯更新合集......

Paozhu C Admin 管理后台 1.4.0 版本发布 Paozhu C web 框架 1.4.0 版本发布。 提供一个完整的 admin 管理后台&#xff0c;支持图片管理&#xff0c;文件上传&#xff0c;修改百度开源编辑器 ueditor 上传管理程序为 c 框架自带 C ORM 框架&#xff0c;支持 HTTP/1 HTTP/2 …

InsCode AI 创作助手使用方法

CSDN最近推出了InsCode&#xff0c;可实现对话式AI辅助编程&#xff0c;能够帮助我们高效地创作文章&#xff0c;成倍提高生产力&#xff01;让我们一起来看看如何使用吧&#xff01; 首先&#xff0c;点击进入【发布】页面 右上角显示【创作助手】&#xff0c;可直接点击进入…

Tcl-10. 字符串比较,匹配,替换,类别,映射,string 相关

一、字符串比较&#xff1a;string compare, string equal 我们在 expr 和控制语句如 if、while 中可用比较运算符””、”!” 、“”、 “”等来进行字符串比较&#xff0c;但是如不注意的话就会产生问题。首先必须用双引号来将字符串值括起来&#xff0c;这样表达式语法分析…

​​​​Linux Shell 实现一键部署Oracle21 rpm包方式

oracle前言 Oracle开发的关系数据库产品因性能卓越而闻名&#xff0c;Oracle数据库产品为财富排行榜上的前1000家公司所采用&#xff0c;许多大型网站也选用了Oracle系统&#xff0c;是世界最好的数据库产品。此外&#xff0c;Oracle公司还开发其他应用程序和软件。同时&#…

【CTF】2023Ciscn WEB方向题解

前言 太菜了太菜了&#xff0c;太久没打比赛啥也不会做&#xff0c;部分题目可去NSSCTF进行复现:NSSCTF 比赛体验一般&#xff0c;一黑灯基本上题都烂掉 unzip 这道题估计大家都会&#xff0c;算是一道原题了 参考:https://xz.aliyun.com/t/10533 由于环境没了&#xff0c;靠…

基于复旦微FMQL45T900 全国产ARM+FPGA核心板方案

XM745D 是一款基于上海复旦微电子 FMQL45T900 的全国产化 ARM 核心板。该核心板将复旦微的 FMQL45T900&#xff08;与 XILINX 的 XC7Z045-2FFG900I 兼容&#xff09;的最小系统集成在了一个 87*117mm 的 核心板上&#xff0c;可以作为一个核心模块&#xff0c;进行功能性扩展&a…

《QDebug 2023年5月》

一、Qt Widgets 问题交流 1.在 VS 中双击打开 ui 文件后&#xff0c;过一会儿 Qt Designer 就闪退 我是在 Windows11 VS2019/2022 环境遇到这个问题&#xff0c;解决方法是设置 Run in detached window 为 True。 点击 "扩展->QT VS Tools->Options"&#…

通俗易懂理解到底什么是DevOps技术(Windows程序员视角)

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天我们来聊聊到底什么是DevOps。 相信很多小伙伴为什么搞懂DevOps&#xff0c;已经不知道查了多少论坛的帖子和资料了&#xff0c;但还是很困惑的话&#xff0c;那不妨来看看我这个帖子。希望能有助于你的…

CASA模型NPP及碳源、碳汇模拟

CASA模型 CASA模型是一个基于过程的遥感模型(Potteret al&#xff0c;1993&#xff1b;Potter et al&#xff0c;1994)&#xff0c;耦合了生态系统生产力和土壤碳、氮通量&#xff0c;由网格化的全球气候、辐射、土壤和遥感植被指数数据集驱动。模型包括土壤有机物、微量气体通…

Android Jatpack--ViewModel

1.ViewModel ViewModel是Jetpack的一部分。 ViewModel类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel类让数据可在发生屏幕旋转等配置更改后继续留存。 ViewModel出现的背景&#xff1a; ①职责分离 Android开发中&#xff0c;在页面较为简单的情况下&…

【社区分享 - 低代码篇】浪潮低代码引擎UBML和低代码平台inBuilder

【社区分享 - 低代码篇】浪潮低代码引擎UBML和低代码平台inBuilder 文章目录 【社区分享 - 低代码篇】浪潮低代码引擎UBML和低代码平台inBuilder1、inBuilder低代码平台介绍2、inBuilder低代码平台操作指导 1、inBuilder低代码平台介绍 1&#xff09;首先介绍了低代码平台相关背…

分布式应用之zookeeper集群+消息队列Kafka

1.Zookeeper集群的相关知识 1.1 zookeeper的概念 ZooKeeper是一个分布式的&#xff0c;开放源码的分布式应用程序协调服务&#xff0c;是Google的Chubby一个开源的实现&#xff0c;是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件&#xff0c;提供的功能…

00后卷王自述,我真的很卷吗?

前段时间我去面试了一个软件测试公司&#xff0c;成功拿到了offer&#xff0c;薪资也从10k涨到了18k&#xff0c;对于工作都还没两年的我来说&#xff0c;还是比较满意的&#xff0c;毕竟有些工作了3到4年的可能还没有我的高。 在公司一段时间后大家都说我是卷王&#xff0c;其…