Android安卓反编译apk源代码
需要用到三个工具:
1、dex2jar 用于将dex文件转换成jar文件
2、jd-gui 用于将jar文件转换成java代码
3、apkTool 还原APK文件中的9-patch图片、布局、字符串等等一系列的资源
这里提供工具下载地址:https://download.****.net/download/qq15577969/12894652
一、配置java环境变量,不懂配置的看我下面这篇文章
二、解压apk文件
举例我的apk文件是demo.apk,直接右键解压(也可以把后缀名apk改成zip再解压)
三、dex转换成jar
解压好的文件目录里有个classes.dex,这个classes.dex文件就是存放所有java代码的文件,我们将它拷贝到dex2jar-2.0目录下,打开cmd命令窗口,在dex2jar-2.0目录下执行命令:d2j-dex2jar classes.dex ,执行结果如下图:
四、jar文件转换成java代码
1、打开jd-gui-windows-1.4.0目录,双击打开jd-gui.exe程序,如下图:
2、把刚才生成的classes-dex2jar.jar文件直接拖到jd-gui窗口里,然后就可以查看java源代码了,如下图:
五、反编译资源文件
1、资源文件在打包的时候被编译过了,我们直接打开的话是看不到明文的。这个时候就需要使用apkTool工具来反编译资源文件,将demo.apk文件拷贝到apkTool目录里,打开cmd命令窗口,在apkTool目录下执行命令:apktool d demo.apk ,其中d是decode的意思,表示我们要对demo.apk这个文件进行解码,执行结果如下图:
apktool d命令的其他附加参数:
- -f 如果目标文件夹已存在,则强制删除现有文件夹(默认如果目标文件夹已存在,则解码失败)。
- -o 指定解码目标文件夹的名称(默认使用APK文件的名字来命名目标文件夹)。
- -s 不反编译dex文件,也就是说classes.dex文件会被保留(默认会将dex文件解码成smali文件)。
- -r 不反编译资源文件,也就是说resources.arsc文件会被保留(默认会将resources.arsc解码成具体的资源文件)。
2、反编译成功后,AndroidManifest.xml等文件都可以直接查看到源代码了,如下: