接着上篇写的,既然我们已经将APK给生成了,那可不可以查看这个APK的源代码呢?当然是可以,但是如果源代码混淆过,看起来就不知所云了,除非打包的时候没有混淆过,是完全可以看到源代码的。下面开始我们的反编译之旅。
第一步、准备好工具dex2jar和jd-gui
Dex2jar是将apk里面的dex文件反编译成jar包,Jd-gui是用来打开jar文件,来查看原始的java代码的。
Dex2jar是google提供的一个开源项目,下载地址:
http://code.google.com/p/dex2jar/downloads/list目前最新版本是dex2jar-0.0.9.12,下载后解压缩一下就可以使用了
Jd-gui
即:java decompiler graphic user interface
下载地址:
http://java.decompiler.free.fr/?q=jdgui 下载后也是解压缩一下就可以使用了
第二步、解压缩apk
将HelloWorld.apk文件重命名为HelloWorld.rar,然后对rar解压缩,然后我们发现解压缩后HelloWorld文件夹里面出来一些元数据文件META-INF,资源文件res、resources.arsc、AndroidManifest.xml,还有一个classes.dex,这个文件就是java代码编译后的文件了。
第三步、dex2jar.bat classes.dex获取jar包
将上一步解压缩出来的classes.dex,放在dex2jar-0.0.9.12工具里面
Windows系统执行dex2jar.bat linux系统dex2jar.sh
第四步、jd-gui反编译jar获取java源码
可以看到,出现了a,b这样的类,说明代码已经被混淆过,OK,至此,一个android apk就被我们反编译成功了。