dex2jar是一款很不错的将android的.dex文件转换成Java的.class文件的转换工具,dex2jar 是一个能操作Android的dalvik(.dex)文件格式和Java的(.class)的工具集合,提供三种不同版本的dex2jar,如果在转换过程中有问题的话,可以试用下其他的版本。
功能:
1.使用命令行时,当转某个类失败时将继续,而不退出程序
2.解决读取class annotation 的一个问题 Fixes issue 42
3.rename package pxb.android.dex2jar to com.googlecode.dex2jar
4.issue 33, issue 43在启动参数中设置默认jvm内存大小
5. 修复读取dex中java/lang/Object类时其父类是null导致的一个NPE问题
6. 提高异常信息的可读性 Fixes issue 44
反编译步骤:
1、把 class.dex 拷贝到 dex2jar.bat 所在目录,直接拖动 class.dex 到 dex2jar.bat,生成 classes.dex.dex2jar.jar。
2、用 rar 解压出 jar 文件中的 class 文件,然后 用jad 或 DJ Java Decompiler 反编译工具将 .class 文件反编译成 .java 文件
3、运行 JD-GUI工具(绿色软件),打开上面的 jar 文件,在File下有个 Save JAR Source,它可以生成 src 源代码。
Android用的Dalvik压根不是标准的Java VM的Jar,而是DEX格式的,怎么办?附件是dxe2jar和JD,两个工具都是open source的,我已经全部放在一个压缩包了。
别着急,有办法:
1. 假设你要反汇编的是app.apk,那么先改名成app.zip
2. 解压
3. 在解压出来的里面找到classes.dex,这个就是目标的程序的二进制文件
4. 用附件的dex2jar,在Windows命令行下运行 dex2jar classes.dex
5. 生成classes.dex.dex2jar.jar,这个就是转换后的JAR文件了
6. 执行jd-gui,找到刚才生成的JAR文件,打开之。
7. 偷偷乐吧,90%以上的Java源代码跃然眼前.
dex文件反编译dex2jar.bat
1.首先找到Android软件安装包中的class.dex
把apk文件改名为.zip,然后解压缩其中的class.dex文件,它就是java文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件;
2.把class.dex拷贝到dex2jar.bat所在目录。
运行dex2jar.bat classes.dex,生成classes.dex.dex2jar.jar
这时你将看到生成的jar包,然后通过上述的XJAD反编译class文件。