dex2jar和JD-GUI这2个工具配合学习android太靠谱了,所以放上来给大家共享,开源的好处就是好东西大家一起分享。
dex2jar下载地址:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip
JD-GUI下载地址:
windows版JD-GUI:http://laichao.googlecode.com/files/jdgui.zip
Linux版JD-GUI:http://laichao.googlecode.com/files/jd-gui-0.3.2.linux.i686.tar.gz
1.首先找到Android软件安装包中的classes.dex
把apk文件改名为.zip,然后解压缩其中的classes.dex文件,它就是java文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件
2.把classes.dex拷贝到dex2jar.bat所在目录。
windows系统下:
在命令行模式下定位到dex2jar.bat所在目录,运行 dex2jar.bat classes.dex,生成classes.dex.dex2jar.jar
Ubuntu系统下:
在终端下定位到dex2jar.sh所在目录,运行
sh dex2jar.sh classes.dex
则可生成classes.dex.dex2jar.jar
3.运行JD-GUI工具(它是绿色无须安装的),打开上面的jar文件,即可看到源代码。点击File > Save Source或者 File > Save All Sources可以class/jar转成.java保存
注:
用以上方法,测试了一下,太可怕了,原来自己也开源居然不知道。 通过这个方法能得到很多的有用的代码、资源,怪不得很多人善于山寨!
1.对于 dex2jar, 建议到http://code.google.com/p/dex2jar/downloads/list 下载最新版本,以前的老版本在将.dex文件反编译为.jar文件时,有时会报异常信息!导致反编译不成功!
2. 解压后得到的xml文件是不可读取的,需要用工具再进行转换
AXMLPrinter(转换为可读的xml,下载地址:http://code.google.com/p/android4me/downloads/list ),自己将AXMLPrinter2.jar拷贝到与 需要转为可读的xml放在同一位置。
下面为我的cmd命令:
- C:\Documents and Settings\Administrator>cd C:\apk_reverse
- C:\apk_reverse>java -jar AXMLPrinter2.jar AndroidManifest.xml > new.xml
- C:\apk_reverse>
参考资料:
http://blog.csdn.net/zhouyongyang621/article/details/6012196
备注:关于mac 机器上如何反编译apk 源代码
请参考 : http://note.sdo.com/u/xbpiao/n/AfuqL~jxhThgLX0200014i