Apktool 工具反编译apk的xml文件
使用方式
# 加上 -s 表示禁止将 dex 文件解码成 smali 文件;
$ apktool d -s xxx.apk
安装apktool
方法一:直接安装Apktool
推荐homebrew安装apktool
brew install apktool
我的mac电脑,没有安装xcode,无法使用。故使用了下面方法。
方法二:编译Apktool.jar
要编译Apktool.jar文件并找到可执行文件,请按照以下步骤操作:
- 编译Apktool.jar
克隆源码:
git clone https://github.com/iBotPeaches/Apktool.git
cd Apktool
- 使用Gradle编译:
mac:
./gradlew build shadowJar
或者对于Windows系统:
gradlew.bat build shadowJar
- 找到生成的jar文件:
编译完成后,你可以在以下路径找到生成的jar文件:
brut.apktool/apktool-cli/build/libs/apktool-cli-all.jar
- Apktool可执行文件
Linux/macOS脚本:
在源码的scripts目录下可以找到linux/apktool和macos/apktool脚本
这些脚本需要与编译好的jar文件一起使用
Windows批处理文件:
在scripts/windows目录下有apktool.bat文件
- 复制到同一目录,或者系统目录
- jar重命名
mv brut.apktool/apktool-cli/build/libs/apktool-cli-all.jar apktool.jar
- 复制到同一目录
例如: sudo cp apktool.jar /usr/local/bin/ sudo cp scripts/linux/apktool /usr/local/bin/ sudo chmod +x /usr/local/bin/apktool
- 测试
apktool --version
反编译apk源码
- 通过 dex2jar 反编译
- 通过 jadx 反编译
JADX 是 macOS 上反编译 APK/DEX 的最佳选择
dex2jar反编译
直接安装:
https://github.com/pxb1988/dex2jar/releases
解压:
unzip dex2jar-2.0.zip -d dex2jar-2.0
cd dex2jar-2.0
命令安装:
brew install dex2jar
使用:
直接转换apk文件:
./d2j-dex2jar.sh your_app.apk
转换dex文件:
./d2j-dex2jar.sh classes.dex
jadx 反编译
安装:
命令安装:brew install jadx
# 下载安装 jadx
https://github.com/skylot/jadx/releases
jadx-gui # 启动图形界面
jadx # 命令行模式
# 使用 jadx
jadx -d output_dir your_app.apk
命令行模式
jadx -d output_dir your_app.apk # 反编译到 output_dir
jadx --deobf your_app.apk # 尝试反混淆
ui查看
- 通过 jadx-gui (推荐,不需要做修改,可直接使用)
- 通过 jd-gui工具
jd-gui工具使用
下载并安装 JD-GUI 软件工具 (下载地址:java-decompiler.github.io/);