生成Android的apk文件过程中,将Java语言的字节码(.class)转换成Dalvik虚拟机字节码(.dex),d2j-dexjar可以将这个过程可逆,将.dex转换成.class。下面我们就介绍如何反编译一个dex文件,并使用jd-gui反编译.class为java源码并查看:
一、dex2jar(https://sourceforge.net/p/dex2jar/wiki/Home/)
Android.dex和java.class文件相关的工具集:
1.dex-reader/writer:读/写Dalvik可执行文件(.dex);
2.d2j-dex2jar:.dex文件转换为.class文件(压缩成jar);
3.smail/baksmail:反汇编dex为smail文件,和编译smali文件为dex;
4.其它的工具:d2j-decrypt-string;
二、如何反编译一个dex文件
1.安装JDK(Ubuntu)
3.将dex2jar-version.zip解压到一个目录;
一、dex2jar(https://sourceforge.net/p/dex2jar/wiki/Home/)
Android.dex和java.class文件相关的工具集:
1.dex-reader/writer:读/写Dalvik可执行文件(.dex);
2.d2j-dex2jar:.dex文件转换为.class文件(压缩成jar);
3.smail/baksmail:反汇编dex为smail文件,和编译smali文件为dex;
4.其它的工具:d2j-decrypt-string;
二、如何反编译一个dex文件
1.安装JDK(Ubuntu)
sudo apt-get install openjdk-7-jre
2.从https://sourceforge.net/projects/dex2jar/files/下载dex2jar; 3.将dex2jar-version.zip解压到一个目录;
pengchengxiang@ubuntu:/usr/local/bin$ sudo unzip dex2jar-2.0.zip
Archive: dex2jar-2.0.zip
creating: dex2jar-2.0/
... ...
-rw-rw-r-- 1 root root 836 Oct 27 2014 d2j-std-apk.bat
-rw-rw-r-- 1 root root 1088 Oct 27 2014 d2j-std-apk.sh
drwxrwxrwx 2 root root 4096 Oct 27 2014 lib
4.使用dex2jar生成.jar文件,dex2jar将会在工作目录生成一个名为someApk-dex2jar.jar; pengchengxiang