Android反编译

今天记一个牛逼的技术,就是APP反编译。所谓反编译就是把别人的apk的源代码给反编译出来,让程序员可读,当然希望各位能尊重每一个开发者的劳动成果,不要拿去做坏事。有些时候我们想学习借鉴别人APP某些功能是怎么实现的,应用到了哪些技术,用这个就可以。

step1:工具包下载

反编译用到的工具:

1.  apktool     --------获取图片等资源的工具包

官网下载网址:https://bitbucket.org/iBotPeaches/apktool/downloads/

Android反编译

2.  dex2jar     --------将apk中的classes.dex编译成jar的工具包

官网下载网址:http://sourceforge.net/projects/dex2jar/files/

Android反编译

3.  jd-gui       --------获取图片等资源的工具包

官网下载网址:http://jd.benow.ca/

 

Android反编译

到这里工具都下载好了(建议下载到同一个目录,解压到当前文件夹)。

Android反编译

 

step2:反编译步骤

拿一个打包好的apk,把后缀名.apk改为.rar 或 .zip,然后步骤解压:

Android反编译      打开     Android反编译

 

把classes.dex(它就是java文件编译再通过dx工具打包而成的)复制到dex2jar-2.0的目录下:

Android反编译

 

Win+R打开DOS命令窗口输入cmd 回车再cd进入该文件的目录:

输入:d2j-dex2jar.bat    classes.dex    如果你是linux或mac系统的话就要用d2j-dex2jar.sh这个文件。 

   Android反编译

没报错,说明你的路径没问题,经过这步骤你的dex2jar-2.0的目录下会多出一个这样的文件:

Android反编译

现在肯定看不了源码,这里就要用到了我们的代码查看器JD-GUI

Android反编译

 

辛辛苦苦开发出来的APP不想被反编译怎么办?开发者可以进行代码混淆。。