使用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
转载自 http://blog.csdn.net/renwudao24/article/details/49664057