环境准备:windows
工具及介绍:
- apktool
- 获取资源文件,提取图片文件,布局文件,还有一些xml的资源文件
- dex2jar
- 将apk反编译成java源码(classes.dex转化成jar文件)
- jd-gui
- 查看apk的classes.dex转化完的jar文件,即源码文件
百度网盘获取:
链接:https://pan.baidu.com/s/1QTTPfdDfMSMk8jIpwJkQZw
提取码:olzw
操作流程:
apk反编译得到程序的源代码、图片、XML配置、语言资源等文件
- 把下载好的apktool_2.4.0.jar和apktool.bat放在自定义文件夹中,例如:D:apktool
- 注意:apktool_2.4.0.jar需要手动把版本号去掉如下图:
- 检查是否安装成功,出现如下图所示证明安装ok(如果使用powershell运行失败,建议使用cmd命令行工具)
- 命令行窗口输入:apktool
注意:下载完把文件后版本号一定要去掉(apktool_2.4.0.jar ),否则报如下错误
- 开始反编译
- 命令行窗口输入:apktool.bat d [apk文件名] -o [输入文件夹]
- 成功后如下图
- 使用apktool解码apk得到的文件夹如下图,其中res文件夹下存放layout、drawable、values等资源。
注意:
此时 dex 文件直接反编译成了 smali 文件,而我们需要的是 .dex 文件。
此时再运行:
$ apktool d -s -f test.apk
- -d 反编译 apk 文件
- -s 不反编译 dex 文件,而是将其保留
- -f 如果目标文件夹存在,则删除后重新反编译
此时得到这样的文件夹:
dex2jar-反编译得到Java源代码
- 把下载好的dex2jar-2.0解压至自定义文件夹内,如下图
- 将classes.dex文件放置文件目录:D:apktooldex2jar-2.0
- 命令行窗口输入:d2j-dex2jar.bat classes.dex
- 成功后如下图:
jd-gui查看源代码,如下图
注意:如果运行打开时出现如下,需要安装JRE环境,点击确定后到浏览器下载安装即可。