以下方法均对于那些没做安全保护的apk应用生效。如果做过一定的保护,如混淆或加壳等均不一定适用,需要再进一步解密。
方法一:在线反编译
网址:http://www.javadecompilers.com/apk
打开网页上传APK就可以在线编译了,不过速度比较慢,等一段时间好了就下载解压内容。据说对于比较大型的APK容易出错。
我试了个30M的apk,效果还可以,基本把全部源码都解出来了。
方法二:利用apktool工具获得 图片资源 和 androidmainfest.xml
1.下载apktool. 下载地址:https://ibotpeaches.github.io/Apktool/install/
根据网站的提示选到合适的系统版本,并按照上面说明修改对应名字后,运行命令行 apktool ,发现能用(就是没有提示找不到该命令),继续。
使用ApkTool对apk进行反编译
在cmd命令行中进入ApkTool的文件夹,反编译命令:apktool.bat d [apk文件] [输出文件夹]
注意:
1、(一般可以不加)如果不加 -o 的话会报错Input file (C:\Users\Administrator\Desktop\apktool) was not found or was not readable.
2、 输出文件夹不要指定在apktool.bat文件所在目录不然会出Destination directory (C:\Users\Administrator\Desktop\apktool) already exists. Use -f switch if you want to overwrite it.
例如我的就是
apktool.bat d -f D:\反编译工具\apktool\app-release.apk -o djjjtext就是对D盘路径中的app-release.apk 进行反编译。 输出文件夹名字为djjjtext (默认路径是C:\Users\用户\djjjtext)
最后得到的内容是 res资源文件 + 非乱码的Androidmainfest.xml + 部分代码(smail文件)
方法三:利用dex2jar + jd-gui 获得java源码
下载dex2jar. 下载地址:http://sourceforge.net/projects/dex2jar/files/
解压新下载的dex2jar,得到一堆.sh 和 .bat 文件。
再对着apk解压(直接右键解压或改后缀名为压缩文件再解都一样),得到dex文件和各种各种杂七杂八的。甚至因为代码太多能得出好几个dex

把dex文件放到dex2jar文件夹下执行下面命令行。(不放也行,会自己补全路径就好)
d2j-dex2jar.bat classes.dex结果如下

得到 classes-dex2jar.jar文件
然后下载jd-gui.
直接打开jd-gui.exe工具,在里面找到刚才的classes_dex2jar.jar,就可以得到java代码了。这个就不截图了。
方法四:通过各种整合工具直接反编译
其实原理就是通过上面的方法,整合到一起变成一键工具。
【1】Android逆向助手
【2】Smali2Java
【3】Gapktool.jar
















