反编译apk文件 得到其源代码

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命令:

[plain]
  1. C:\Documents and Settings\Administrator>cd C:\apk_reverse
  2. C:\apk_reverse>java -jar AXMLPrinter2.jar AndroidManifest.xml > new.xml
  3. C:\apk_reverse>

 

参考资料:

http://blog.csdn.net/zhouyongyang621/article/details/6012196

备注:关于mac 机器上如何反编译apk 源代码

请参考 : http://note.sdo.com/u/xbpiao/n/AfuqL~jxhThgLX0200014i

欢迎关注下方“非著名资深码农“公众号进行交流~

发表评论

邮箱地址不会被公开。