(一)反编译的理论基础
Android是基于Java语言进行的编程,其apk(全称:Android Package)文件
是将Java编译后的.class文件
打包成.Jar包文件,之后打包成classes.dex文件,最后在打包成.apk安装发布
而反编译就是这个的逆过程。
(二)Android的反编译分两个过程
1、获取资源文件
需要两个工具
apktool:http://download.youkuaiyun.com/download/u014058109/8737983
apktool-install:http://download.youkuaiyun.com/download/u014058109/8737989
这两个工具都是Google提供的APK编译工具,官网进的实在慢
然后下面就说工具的使用方法:
解压到同一个文件夹下
运行cmd,进入到此文件夹下,并使用如下命令
apktool d FaceUpVersion.apk Output
apktool.bat d <apk所在的文件夹,如果为同一文件夹下,不需要另附路径> <反编译后存放地>
如此就可以获得工程中所有的res资源文件
如图:
2、获取java文件
也需要两个工具
Dex2jar:http://download.youkuaiyun.com/download/u014058109/8737991
JD-GUI:http://download.youkuaiyun.com/download/u014058109/8738019
前者是用来反编译apk执行文件中的classes.dex
后者是用来查看反编译后的Jar工程文件
同样把Dex2jar下载后解压
以压缩包的形式把apk文件解压,并把其中的classes.dex文件提取出来
输入命令行:
dex2jar.bat classes.dex
dex2jar <classes.dex文件路径>
得到:
classes.dex.dex2jar.jar文件,就可以用JD-GUI来查看反编译出的工程了。
剩下的工作就是通过复制、粘贴把整个工程还原。
http://www.poorren.com/android-apk-app-dumpbin/
这里再介绍一个反编译的整合工具
Apkdb:http://download.youkuaiyun.com/download/u014058109/8737973
使用说明:
关闭杀毒软件,顺着步骤安装后,既可以使用。
使用方法是选中要反编译的文件,点击鼠标右键即可选中反编译。
这里步骤还是按照上面所讲的那两步,分别选中.apk文件和classes.dex文件进行右键反编译