关于反编译,看了这篇文章,由此写篇文章作为资料的整理https://www.jianshu.com/p/1913695de091(说的不太清楚)
https://blog.csdn.net/sxk874890728/article/details/80486223(亲测有效)
https://blog.csdn.net/xcc1234/article/details/77868174(亲测有效)
工具包
先附上下载地址,以免你们像我一样又找了好久:
dex2jar下载链接: https://pan.baidu.com/s/13_IKg7AMBOzfeUbSNOsCPw 密码: 4f83
JD-GUI下载链接: https://pan.baidu.com/s/17zTC28C7oDKmUpvmb9eBnQ 密码: 4fmi
apktool下载链接: https://pan.baidu.com/s/1xECSBEvcVSbi7EBqz7T_VA 密码: qsij
主要是说下如何反编译apk的步骤:
1. 下载好上面的工具,各自解压到当前文件夹下,这个不多说。
2. 使用dex2jar反编译dex文件
将需要反编译的APK后缀名改为.rar或则 .zip,解压看到目录
得到其中的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
)
运行结束后,在该目录下会生成一个classes_dex2jar.jar
的文件
然后打开工具jd-gui文件夹里的jd-gui.exe
,用该工具打开生成的classes_dex2jar.jar
文件,便可以看到源码
3. 使用apktool反编译xml文件:
下载上述工具中的apktool,解压得到3个文件:aapt.exe
,apktool.bat
,apktool.jar
,将需要反编译的APK文件放到该目录下,
打开命令行,定位到apktool
文件夹下,输入以下命令:apktool.bat d -f test.apk test
用低版本的0.9.015的版本的apktool反编译查看apk资源文件出现下面问题;
于是到apktool官网去下载新版本,链接是:https://ibotpeaches.github.io/Apktool/install/
替换apktool.jar,再次执行命令行
apktool d -f test.apk -o test
可以看到已经反编译的文件如下:
注意:
在apptool 2.0以后命令发生了变化,不能再使用 apktool d <apk_path> <outfile_path>
使用命令行apktool d -f <apk_path> -o <outfile_path>
(apktool d -f test.apk -o test)
出现一些问题查找资料发现以下好文:
- Android-apktool反汇编异常-Input file (XXX) was not found or was not readable.
- apktool反编译:Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file
- Apk反编译再打包
- Android逆向——反编译APK改代码
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 <apkPath> -o <folderPath>,参数具体的意思可以直接打apktool回车(windows)查看帮助
3是因为apktool版本过低导致,请升级到最新版本,地址:[https://bitbucket.org/iBotPeaches/apktool/downloads](https://bitbucket.org/iBotPeaches/apktool/downloads)