andriod apk反编译工具之简单使用: apktool+dex2jar+jd-gui 与 jadx

apktool+dex2jar+jd-gui:

一、简介

在这里插入图片描述

二、 安装工具

  • dex2jar最新版: 把dex文件转成jar文件下载地址:百度网盘源网站
  • jd-gui: 这个工具用于将jar文件转换成java代码下载地址:源网站

备注: dex2jar的低版本如2.0可能会报错: Detail Error Information in File ./classes-error.zip

三、 反编译源码

1. 新建文件夹 project_dir

2. 从 dex2jar 文件夹中复制两个文件到 project_dir 文件夹内

  • d2j_invoke.sh
  • d2j-dex2jar.sh
  • lib (文件夹)

3. 从apk文件复制 classes.dex 文件 到 project_dir 文件夹内

  • 将apk 文件的 .apk 后缀改成 .rar ; 并解压;
  • 从解压文件夹中复制 classes.dex 到 project_dir 文件夹内

4. 终端输入命令得到 classes-dex2jar.jar 文件

bash d2j-dex2jar.sh classes.dex

5. 用JD-GUI.app 反编译出源代码

  • 用JD-GUI.app 打开 classes-dex2jar.jar 文件
    在这里插入图片描述
  • 源代码保存成压缩包 classes-dex2jar.jar.src.zip
    在这里插入图片描述
  • 解压 classes-dex2jar.jar.src.zip 即可得源代码的文件夹

四、文章参考

  1. https://www.52pojie.cn/forum.php?mod=viewthread&tid=822434
  2. https://www.jianshu.com/p/2bbe7112f940

—————————————————————————————————————————

jadx:更好的Android反编译工具

转自原文: https://liuzhichao.com/2016/jadx-decompiler.html

在jadx出现之前,我一般是使用apktool和dex2jar这两个Android反编译工具。这两个工具也有不同的侧重点,如果只是想拿到apk里的一些图片或其他资源或是查看一下布局的layout文件,直接使用apktool -d xxx.apk即可。如果是要查看一下代码实现,就使用d2j-dex2jar.sh反编译一下apk然后使用jd-gui工具查看反编译后的.jar文件。

apktool+dex2jar+jd-gui一直是一个比较流行的Android反编译组合。 在使用过jadx之后觉得jadx相比上面的组合具有如下两个优点: * 可以直接反编译出.java文件 * 查看源码时直接显示资源名称,而不是像jd-gui里显示的资源ID

一、安装jadx

编译安装

git clone https://github.com/skylot/jadx.git
cd jadx
./gradlew dist

然后将build/jadx/bin加入到环境变量。

二、使用jadx

jadx也有GUI,直接双击bin目录下的jadx-gui,然后选择要反编译的apk即可;
如果要保存源码,选择File->Save ALL即可保存文件,然后就可以导入Android Studio等IDE中。 我们也可以直接使用命令行反编译apk文件:

使用命令行打开

反编译apk

jadx  ***.apk

反编译dex文件

jadx -d out classes.dex  #直接输出.java文件到out目录

使用GUI打开

  • 先输入 jadx-gui
  • 选择 apk或dex文件
  • save all(保存全部)
  • 选择保存的文件夹

备注:

  • 在反编译较大的apk时,如果遇到jadx-jui卡顿和假死的情况,可适当优化jvm相关参数, 我直接在~/.bash_profile中加上了如下语句:
export JVM_ARGS="-Xmx4096m -XX:MaxPermSize=1024m"
发布了79 篇原创文章 · 获赞 14 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_38689232/article/details/99302029