在mac os系统上反编译android apk,首先需要准备好以下3个文件:
1、apktool:https://ibotpeaches.github.io/Apktool/install/
2、dex2jar:https://github.com/pxb1988/dex2jar
3、jd-gui:http://jd.benow.ca
下载好后,就可以开始我们的反编译之路了:
1、安装apktool:将下载的apktool.jar和apktool.txt(可能下载的不是这个名称可以修改一下),apktool.txt需要另保存名称为apktool(不需要sh和txt后缀)可以执行以下命令:
touch apktool
cat apktool.txt >> apktool就行
然后将shell脚本apktool和apktool.jar移到/usr/local/bin文件夹下
sudo -s
mv 源文件 /usr/local/bin
然后执行apktool -v命令:如出现以下提示就说明成功了
2、dex2jar和jd-gui解压即可;
3、执行命令apktool d apk文件:如
以下是生成的文件夹:
这个文件夹下可以看到apk中的资源文件,如图片,xml文件等等,如果你只需要获取图片等资源文件那么到这里就可以了,若要进一步获取java代码的话就需要用到dex2jar和jd-gui工具了
1、要获取java代码的话就要进行回编译(apktoo可以进行反编译和回编译),主要就是获取classex.dex文件。
运行命令:apktool b 反编译生成的文件夹
如:
会生成build文件夹:如
其中classes.dex文件就是我们所需要的了,不同的apk会生成不同数量的classes.dex文件,看大小和拆分了。
2、现在要用到我们的dex2jar这个工具了
d2j-dex2jar.sh和d2j_invoke.sh添加运行权限:
chmod +x d2j-dex2jar.sh
chmod +x d2j_invoke.sh
然后运行命令./d2j-dex2jar.sh apk,如
之后可以在dex2jar文件夹中看到classes-dex2jar.jar文件,这个就是最终的java文件,那么我们怎么看呢,这就要用到我们下载的jd-gui了
3、打开jd-gui工具,将classes-dex2jar.jar拖入即可,如下所示显示:
终于完成了!!