处于某些不可告人的目的,项目上需要反编译某个apk。
参考了网上教程,基本都是利用三大神器:apktool、dex2jar、jd-gui
本文主要参考了https://www.cnblogs.com/sthu/p/9098720.html
工具介绍:(末尾附上下载链接)
apktool
作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看
dex2jar
作用:将apk反编译成java源码(classes.dex转化成jar文件)
jd-gui
作用:查看APK中classes.dex转化成出的jar文件,即源码文件
其实主要就是利用dex2jar查看其源码。apktool 查看布局文件这一步无所谓。
我们知道apk实际上就是一个压缩包,可以利用rar压缩工具解压打开查看。
主要步骤记录一下:
1.apktool 查看布局文件(这一步仅为查看其布局文件,若是仅为了看源码,可以省略不做)
apktool工具包,解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ,将需要反编译的APK文件放到该目录下,
打开命令行界面(运行-cmd) ,定位到apktool文件夹,输入以下命令:apktool.bat d -f test-daiwei.apk test
(如果是apktool.jar高版本,则需要加入参数-o指定其输出目录test,如:apktool.bat d -f test-daiwei.apk -o test )
如果你想将反编译完的文件重新打包成apk,那你可以:输入apktool.bat b test(你编译出来文件夹)便可(这个我没有执行过)
2. Apk反编译得到Java源代码
将要反编译的APK后缀名改为.rar或则 .zip,并解压,得到其中的额classes.dex文件(它就是java文件编译再通过dx工具打包而成的),将获取到的classes.dex放到之前解压出来的工具dex2jar-2.0 文件夹内,
在命令行下定位到dex2jar.bat所在目录,输入dex2jar.bat classes.dex
高版本dex2jar的话,应该是d2j-dex2jar.bat classes.dex,效果如下:
(可以看到报了一些错,暂时未管它,退出可能dex2jar版本与apk不兼容或者jdk版本不兼容)
高版本dex2jar的话,还可以直接直接d2j-dex2jar.bat test-daiwei.apk,如下图
在改目录下会生成一个classes_dex2jar.jar的文件,然后打开工具jd-gui文件夹里的jd-gui.exe,之后用该工具打开之前生成的classes_dex2jar.jar文件,便可以看到源码了,效果如下:
附上所有工具包的下载地址:
apktool下载地址:https://ibotpeaches.github.io/Apktool/install/
dex2jar工具包:https://sourceforge.net/projects/dex2jar
jd-gui下载地址:http://jd.benow.ca/
如果以上都无法下载,你还可以从这里下载:https://download.csdn.net/download/wangchsh2008/11615913
如果你没有csdn积分而又非常需要它,那么请在评论区留言你的邮件,我会在有空的时候,发给你。
希望能帮助到有需要的程序员们!