apk文件反编译d2j-dex2jar.bat/dex2jar.bat遇到的问题

2023-10-03 20:50

本文主要是介绍apk文件反编译d2j-dex2jar.bat/dex2jar.bat遇到的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用apk反编译软件dex2jar与jdgui时,出现了以下两种情况:

I:\Android_decode\APK_decode\dex2jar>dex2jar.bat classes.dexversion:0.0.7.8-SNAPSHOT
6 [main] INFO pxb.android.dex2jar.v3.Main - dex2jar classes.dex -> classes.dex.dex2jar.jar 4432 [main] ERROR pxb.android.dex2jar.reader.DexFileReader - Fail on class
java.lang.RuntimeException: Error in method:[Ljcifs/util/DES;.deskey([BZ[I)V]at pxb.android.dex2jar.reader.DexFileReader.visitMethod(DexFileReader.java:499)at pxb.android.dex2jar.reader.DexFileReader.acceptClass(DexFileReader.java:302)at pxb.android.dex2jar.reader.DexFileReader.accept(DexFileReader.java:177)at pxb.android.dex2jar.v3.Main.doData(Main.java:78)at pxb.android.dex2jar.v3.Main.doFile(Main.java:114)at pxb.android.dex2jar.v3.Main.main(Main.java:64)
Caused by: java.lang.RuntimeException: Not support Opcode:[0x00d9]=RSUB_INT_LIT8 yet!at pxb.android.dex2jar.v3.V3CodeAdapter.visitInInsn(V3CodeAdapter.java:824)at pxb.android.dex2jar.reader.DexOpcodeAdapter.visit(DexOpcodeAdapter.java:321)at pxb.android.dex2jar.reader.DexCodeReader.accept(DexCodeReader.java:314)at pxb.android.dex2jar.reader.DexFileReader.visitMethod(DexFileReader.java:497)... 5 more
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Error in method:[Ljcifs/util/DES;.deskey([BZ[I)V]

exception in thread main java.lang.outofMemoryError:java heap space


之前还用的好好的,可以反编译,还反馈了我当前使用的dex2jar的版本信息,查了许久也没有解决办法,下面的博文提及可能是Java版本太高而当前使用的dex2jar版本太低所致,我的Java是1.8版本(前段时间的确升级过),而dex2jar是0.07.8,所以从官网下载了最新版dex2jar-2.0,后面会提供下载链接。

参考博文:http://blog.csdn.net/langrenyijiu/article/details/9048147

反编译批处理文件有了改动,不过大同小异

  • 将classes.dex文件复制到dex2jar-2.0文件夹下;
  • cmd找到dex2jar-2.0文件路径下;
  • 输入d2j-jar2dex.bat classes.dex

窗口会出现dex2jar classes.dex -> .\classes-dex2jar.jar,相应文件会出现该文件,到这里就可以用jdgui打开此文件学习别人的代码了。

反编译教程可参考:http://blog.csdn.net/yueyueniao96/article/details/7540224

dex2jar-2.0文件下载链接:http://download.csdn.net/detail/renwudao24/9244385

更新于2017年7月10日

1)dex2jar的版本太低——无法反编译Android Studio打包的apk文件,目前我使用的是dex2jar-0.0.9.15,下载链接;

2)使用d2j-dex2jar.bat文件,如果路径下存在classes-dex2jar.jar会出现下述提醒“classes-dex2jar.jar exists, use --force to overwrite”


解决办法:

d2j-dex2jar.bat -f classes.dex


这篇关于apk文件反编译d2j-dex2jar.bat/dex2jar.bat遇到的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/693

相关文章

基于.NET编写工具类解决JSON乱码问题

《基于.NET编写工具类解决JSON乱码问题》在开发过程中,我们经常会遇到JSON数据处理的问题,尤其是在数据传输和解析过程中,很容易出现编码错误导致的乱码问题,下面我们就来编写一个.NET工具类来解... 目录问题背景核心原理工具类实现使用示例总结在开发过程中,我们经常会遇到jsON数据处理的问题,尤其是

springboot3.4和mybatis plus的版本问题的解决

《springboot3.4和mybatisplus的版本问题的解决》本文主要介绍了springboot3.4和mybatisplus的版本问题的解决,主要由于SpringBoot3.4与MyBat... 报错1:spring-boot-starter/3.4.0/spring-boot-starter-

Java中有什么工具可以进行代码反编译详解

《Java中有什么工具可以进行代码反编译详解》:本文主要介绍Java中有什么工具可以进行代码反编译的相关资,料,包括JD-GUI、CFR、Procyon、Fernflower、Javap、Byte... 目录1.JD-GUI2.CFR3.Procyon Decompiler4.Fernflower5.Jav

在 Spring Boot 中使用异步线程时的 HttpServletRequest 复用问题记录

《在SpringBoot中使用异步线程时的HttpServletRequest复用问题记录》文章讨论了在SpringBoot中使用异步线程时,由于HttpServletRequest复用导致... 目录一、问题描述:异步线程操作导致请求复用时 Cookie 解析失败1. 场景背景2. 问题根源二、问题详细分

解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题

《解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题》在Spring开发中,@Autowired注解常用于实现依赖注入,它可以应用于类的属性、构造器或setter方法上,然... 目录1. 为什么 @Autowired 在属性上被警告?1.1 隐式依赖注入1.2 IDE 的警告:

解决java.lang.NullPointerException问题(空指针异常)

《解决java.lang.NullPointerException问题(空指针异常)》本文详细介绍了Java中的NullPointerException异常及其常见原因,包括对象引用为null、数组元... 目录Java.lang.NullPointerException(空指针异常)NullPointer

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

关于Nginx跨域问题及解决方案(CORS)

《关于Nginx跨域问题及解决方案(CORS)》文章主要介绍了跨域资源共享(CORS)机制及其在现代Web开发中的重要性,通过Nginx,可以简单地解决跨域问题,适合新手学习和应用,文章详细讲解了CO... 目录一、概述二、什么是 CORS?三、常见的跨域场景四、Nginx 如何解决 CORS 问题?五、基

MySQL安装时initializing database失败的问题解决

《MySQL安装时initializingdatabase失败的问题解决》本文主要介绍了MySQL安装时initializingdatabase失败的问题解决,文中通过图文介绍的非常详细,对大家的学... 目录问题页面:解决方法:问题页面:解决方法:1.勾选红框中的选项:2.将下图红框中全部改为英

Nginx启动失败:端口80被占用问题的解决方案

《Nginx启动失败:端口80被占用问题的解决方案》在Linux服务器上部署Nginx时,可能会遇到Nginx启动失败的情况,尤其是错误提示bind()to0.0.0.0:80failed,这种问题通... 目录引言问题描述问题分析解决方案1. 检查占用端口 80 的进程使用 netstat 命令使用 ss