Java自古以来就可以反编译,Android是基于Java开发的,自然逃不过这个命运。目前Android应用程序apk可以通过2种途径进行反编译各取所需,笔者就是通过以下方法反编译米聊,并成功山寨了其部分功能:),大家可以试试QQ之类的软件。
一.反编译Apk得到Java源代码:
1.下载工具:
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
2.解压apk取出classes.dex
apk本质就是一个压缩文件,所以把apk文件改名为.zip,然后解压缩其中的classes.dex文件,它就是java文件编译再通过dx工具打包成的。
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文件,即可看到源代码
二.反编译apk得到图片、XML配置等文件。
1.下载工具:
到code.google上下载apktool.jar以及相关文件:http://code.google.com/p/android-apktool/downloads/list
点击下载apktool-1.0.0.tar.bz2 和apktool-install-windows-2.1_r01-1.zip
2.解压apktool.jar 到 C:\Windows文件夹下
解压apktool-install-windows.zip到任意文件夹
3.点击开始菜单,运行,输入CMD回车,用cd命令转到刚刚解压apktool-install-windows所在的文件夹,输入apktool,出现一些命令说明即成功安装。
4.Apktool 命令
apktool d test.apk xxx 反编译test.apk到文件夹xxx
apktool b test 从文件夹test重建APK