使用的工具:
1. apktool
2. dex2jar
3. jd-gui
原理:
apktool把apk里的资源文件和签名文件提取出来
dex2jar将apk后缀改为zip或rar后,解压出来的classes.dex转为jar包
jd-gui是查看dex2jar生成的文件
apktool反编译流程:
1. 下载工具apktool,解压得到,如下图:
2.配置java的环境变量
3.拷贝要反编译的apk到apktool目录下,如下图:
3.进入DOS终端,定位到apktool目录下,输入命令 apktool.bat d -f 123.apk,如果反编译成功则出现如下图:
(注意:反编译出错,如下图所示,一般都是apktool.jar的版本不是最新的,则去官网下载最新的apktool.jar替换掉即可)
反编译成功后,apktool目录下会多一个123(根据apk的文件名来自动生成的,如果有则覆盖)文件,如下图
进入该文件可以看到如下的文件:
在smali目录下就是源码,但我在打包前用了代码混淆,所有混淆的代码的类名都用了a、b、c之类的字母代替,如下图:
dex2jar流程:
1.下载dex2jar,解压,把apk改为后缀.zip,解压得到classes.dex文件
2.把得到的classes.dex拷贝到dex2jar目录下
3.执行DOS终端,定位到dex2jar目录下,输入命令如下:
生成classes-dex2jar.jar
jd-gui工具:
利用jd-gui工具查看上述生成的classes-dex2jar.jar文件