本文主要是介绍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遇到的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!