工具:
apktool.jar | 获得apk资源文件和classes.dex文件、打包apk |
dex2jar | 从classes.dex文件获得jar文件 |
jd-gui.exe | 查看jar文件,导出class文件 |
apk签名工具 | 将apktool打包后的文件签名 |
前三个文件的链接:https://pan.baidu.com/s/1on1zROrVZS86wmCMZwhHdg
提取码:im1d
apk签名可在电脑上完成,或在手机上用签名APP,如apk-签名器完成
一、用apktool获得apk资源文件
- 将要反编译的apk文件放到apktool所在的目录
- 打开cmd,用cd +目录 命令定位到apktool所在目录
-
在cmd中运行jar的命令是
java -jar jar包名.jar
我们要运行apktool得到apk的资源文件,命令如下
java -jar apktool_2.3.4.jar d -f 路径\反编译.apk -o 目标文件 //“apktool_2.3.4.jar”的由apktool版本的不同而不同 //“反编译.apk”是要反编译的apk,要写出它的完整路径 //“目标文件”是的到的文件的存放路径
完成后在目标目录中就出现了apk的资源文件,包括AndroidManifest.xml、图片、声音、布局文件。从里面找到classes.dex文件,一般在build目录下。下一步是对dex文件的操作。
二、从classes.dex文件获得jar文件
- 将classes.dex复制到dex2jar目录中,cmd下定位到dex2jar目录下
- 输入如下命令:
d2j-dex2jar classes.dex
在目录下得到classes-dex2jar.jar文件
三、用jd-jui查看jar文件、导出java文件
- 打开jd-jui.exe,这是不用安装的软件
- 点击左上角的File,打开刚才得到的jar文件,就能查看程序的代码了。在此处不能对代码进行编辑。
- 点击左上角的File,点击Save All Sources,全部保存成java文件。
得到的代码很可能经过混淆,直接导入AndroidStdio或Eclipse很可能会出现错误。