Android反编译

797 阅读1分钟

导航
工具一、 Apktool
工具二、 dex2jar
工具三、 JD-GUI
反编译-完整流程
可能遇到的问题

Android反编译

Android反编译,需要用到三个工具:Apktooldex2jarJD-GUI

工具一、 Apktool

通过 Apktool 工具,能完整的从 apk 安装包中提取出 resource、dex、manifest、xml 等文件;也可以修改资源文件之后 rebuild 一个apk。

1、 安装流程

下载链接
安装步骤参考官网即可(需要已经安装了JDK8及以上版本):

image.png

工具二、 dex2jar

主要是将 dex 文件转换为包含 class 文件的 jar 文件。

1、 安装流程

  1. 打开github链接:github.com/pxb1988/dex…
  2. 直接获取 Release 的最新版本(我操作时最新版本是 V2.1 版本)
  3. 跳转到 Releases 页面 Assets 目录,直接下载可执行文件的压缩文件。
  4. 解压后,命令行进入到该 dex-tools-2-2.1 路径下进行 dex 操作。

工具三、 JD-GUI

JD-GUI 工具是针对从dex 转为jar后的文件,进行可视化读取与展示。

使用 JD-GUI 工具打开 “classes_dex2jar.jar” 文件即可看到反编译后的源码

image.png

JD-GUI下载链接:java-decompiler.github.io/

反编译-完整流程

  1. “taget.apk” 修改为 “taget.zip” ,然后用压缩软件解压到 “taget” 文件夹
  2. 把 “taget” 文件夹里的 “classes.dex” 文件放到 “dex-tools-2.1” 文件夹里
  3. “dex-tools-2.1” 文件夹里,使用cmd执行命令:d2j-dex2jar classes.dex ,会生成一个 “classes_dex2jar.jar” 文件
  4. 使用 JD-GUI 工具打开 “classes_dex2jar.jar” 文件即可看到反编译后的源码

可能遇到的问题

(1)Error occurred during initialization of VM Could not reserve enough space for 2097152KB object heap

解决办法:github.com/pxb1988/dex…