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

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

I:\Android_decode\APK_decode\dex2jar>dex2jar.bat classes.dex
	version: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


你可能感兴趣的:(Java,Android)