MAC环境下对APK进行简单反编译
0x01 测试环境
以下俗称“三件套” apktool 用于反编译apk,得到资源文件、dex文件等。 dex2jar 将后缀为dex的文件转换为.jar文件方便查阅 jd-gui 用于将.jar文件转换成java代码并查看
0x02 使用apktool
2.1 下载安装apktool
下载地址:
https://ibotpeaches.github.io/Apktool/install/
选择macOS一栏,然后根据步骤安装,下面一步一步解析
2.2.1 保存脚本
右键点击“wrapper script”另存为“apktool”,不需要任何后缀!可以先存放到桌面。
2.2.2 下载新版工具
点击“()”跳转到apktool下载界面下载最新版本工具
跳转后地址:https://bitbucket.org/iBotPeaches/apktool/downloads/ 点击最新版本下载即可!同理先放到桌面。
2.2.3.拖放文件
打开终端输入以下命令即可打开目录
open /usr/local/bin
将桌面文件apktool、apktool.jar(需将apktool_2.5.0.jar重命名)拖到该目录下,如下图所示!
4.赋予执行权限
打开终端输入如下命令,进入刚才的目录
cd /usr/local/bin
赋予两个文件执行权限
chmod +X apktool chmod +x apktool.jar
最后在终端输入apktool查看是否安装成功,如下图所示即证明安装成功!
2.2 使用apktool反编译apk
基本命令
apktool d -s xxx.apk(这里还一定要跟apk绝对路径) # -d表示反编译 -s表示不把dex转换为smali文件,方便我们后面查看。xxx.apk为需要反编译的apk,需要指定绝对路径。绝对路径不清楚的可以的右键apk,选择显示简介即可通过位置看到。
执行后会在当前路径下生成反编译后的结果。
0x03 dex2jar转换dex
下载地址:https://sourceforge.net/projects/dex2jar/files/
我们仅仅需要里面d2j-dex2jar.sh
sudo sh d2j-dex2jar.sh class.dex # 多个class.dex同样用次方式,class.dex 也需要绝对路径
⚠️:若提示某文件没权限,chmod +x赋予权限即可
转换前:
转换后:
0x04 使用jd-gui查看源码
下载地址:http://java-decompiler.github.io/
下图任意一个即可,我习惯第一个。第二个可能提示JDK版本不符合
打开jd-gui 拖入class.jar文件即可查看源码
0x05 结语
1.建议将除了apktool之外的工具放到一个文件夹里面,方便操作。
比如我是这样存放的
2.本方法并不适用于任何apk,比如混淆加壳的情况! 3.windows步骤类似,只是教程涉及的脚本工具需要对应下载!