工具包
主要是说下如何反编译apk的步骤:
1. 下载好上面的工具,各自解压到当前文件夹下,这个不多说。
TIM截图20181014152139.png
2. 使用dex2jar反编译dex文件
将需要反编译的APK后缀名改为.rar或则 .zip,解压看到目录
TIM截图20181014150751.png
得到其中的classes.dex文件(它就是java文件编译再通过dx工具打包而成的),将获取到的
classes.dex复制到解压出来的工具dex2jar-0.0.9.15 文件夹内,
在命令行下,进入到dex2jar.bat所在目录,输入命令:
输入dex2jar.bat classes.dex (没有的话可以输入:d2j-dex2jar.bat classes.dex, 我用的是上面下载解压的dex2jar-2.0)
0.9.15.png
2.0.png
运行结束后,在该目录下会生成一个classes_dex2jar.jar的文件
TIM截图20181014153225.png
然后打开工具jd-gui文件夹里的jd-gui.exe,用该工具打开生成的classes_dex2jar.jar文件,便可以看到源码
TIM截图20181014153320.png
3. 使用apktool反编译xml文件:
下载上述工具中的apktool,解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ,将需要反编译的APK文件放到该目录下,
打开命令行,定位到apktool文件夹下,输入以下命令:apktool.bat d -f test.apk test
TIM截图20181014155233.png
0.9.15.png
用低版本的0.9.015的版本的apktool反编译查看apk资源文件出现下面问题;
apktool_error.png
于是到apktool官网去下载新版本,链接是:https://ibotpeaches.github.io/Apktool/install/
替换apktool.jar,再次执行命令行 apktool d -f test.apk -o test
apktool_ok.png
可以看到已经反编译的文件如下:
获取到的资源文件.png
注意:
Error.png
在apptool 2.0以后命令发生了变化,不能再使用 apktool d
使用命令行apktool d -f -o (apktool d -f test.apk -o test)
出现一些问题查找资料发现以下好文:
apktool反编译时经常会出现下面的信息
1.Input file was not found or was not readable.
2.Destination directory (C:\Users\user\a) already exists. Use -f switch if you want to overwrite it.
3.Exception in thread "main" brut.androlib.AndrolibException: Could not decode ars c fil..........
解决方案:
1和2是因为apktool升级到2.0以上时,使用方式已经替换,格式为:apktool d [-s] -f -o ,参数具体的意思可以直接打apktool回车(windows)查看帮助
3是因为apktool版本过低导致,请升级到最新版本,地址:[https://bitbucket.org/iBotPeaches/apktool/downloads](https://bitbucket.org/iBotPeaches/apktool/downloads)