crazyandcoder

mac环境下反编译apk

2021.09.12

1. 准备

  1. apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件。
  2. dex2jar:将反编译后的classes.dex文件转化为.jar文件。
  3. jd-gui:用于将.jar文件转换成java代码。

2. 安装apktool

(1)//安装apk
brew install apktool


(2)//检测是否安装成功,打印apktool的版本号即代表安装成功:2.6.0
apktool -version


(3)//反编译目标APK文件,执行完毕后目录下会生成反编译apk的对应文件夹,编译生成的classes.dex文件
apktool d **.apk

或者

apktool d -s **.apk

如果生成的文件夹下面不存在 classes.dex 文件,这时候就需要在上述命令行添加-s,表示禁止将 dex 文件解码成 smali

3. 使用 dex2jar 工具把 classes.dex 文件转化成.jar文件

3.1 下载 dex2jar

下载地址:https://sourceforge.net/projects/dex2jar/files/

3.2 进入到你解压后的 dex2jar 文件夹下

cd dex2jar/

3.3 把 classes.dex 文件复制到解压后的 dex2jar 文件夹下并执行以下命令

sh d2j-dex2jar.sh classes.dex

如果出现权限问题:d2j-dex2jar.sh: line 36: ./d2j_invoke.sh: Permission denied,则需要使用管理员权限执行,

//管理员权限执行
sudo sh d2j-dex2jar.sh classes.dex

3.4 当前文件夹下面生成一个 .jar 文件,里面就是 java 源码

截屏20210906 下午5.14.43.png

4. 使用 JD-GUI 软件查看 jar 包下的 java 源码

4.1 下载 JD-GUI

下载地址:http://java-decompiler.github.io/

4.2 将上述的 .jar 文件拖进 JD-GUI 即可。