用java开发最操心的就是得到反编译,所以作为开发人员我们须要知道怎么反编译,那样才干知道怎样防止反编译、保证代码安全。
以下来看下比較经常使用的方法!
第一种方式:利用apktool反编译
1,首先在
http://code.google.com/p/android-apktool/downloads/list
下载两个文件:apktool1.5.2.tar.bz2和apktool-install-windows-r05-ibot.tar.bz2
假设google訪问不了。还提供两个国内的地址:
apktool:http://dl.vmall.com/c08jjy6n3b
ibot:http://www.vdisk.cn/down/index/13442490
2。解压第一个文件得到apktool1.5.2.jar 放到随意文件夹下, 第二个文件内包括aapt.exe和apktool.bat两个文件相同放到apktool所在的文件夹下。
3。在命令行下输入apktool能够看到一些帮助信息。
4。输入apktool d c:******.apk c:****** 就能够把 c:******.apk 这个apk文件反编译到c:******
另外一种方式:利用dex2jar反编译
首先要下载两个工具:dex2jar和JD-GUI
前者是将apk中的classes.dex转化成Jar文件。而JD-GUI是一个反编译工具,能够直接查看Jar包的源码。
下面是下载地址:
dex2jar:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip
JD-GUI:http://laichao.googlecode.com/files/jdgui.zip
详细步骤:
首先将apk文件,将后缀改为zip,解压,得到当中的classes.dex,它就是java文件编译再通过dx工具打包而成的。
解压下载的dex2jar,将classes.dex拷贝到dex2jar.bat所在文件夹。在命令行下定位到dex2jar.bat所在文件夹
执行
dex2jar.bat classes.dex
生成
classes.dex.dex2jar.jar
生成jar文件的截图例如以下:
执行JD-GUI(jd-gui.exe),打开上面生成的jar包,就可以看到源码了
HelloAndroid源代码(编译前的apk源代码对比)例如以下: