背景说明:
1、dex2jar 工具主要是将 dex 文件转换为包含 class 文件的 jar 文件。
2、JD-GUI 工具是针对从dex 转为jar后的文件,进行可视化读取与展示。
3、apk安装包是一个zip压缩包,如果仅仅是想获取源码文件,并不关心具体资源文件,可跳过第一步 apktool 工具的操作,直接到第二步进行 dex 到 jar 文件的转换。
一、dex2jar 工具官网下载:
dex2jar 工具 GitHub链接:https://github.com/pxb1988/dex2jar直接获取 Release 的最新版本(我操作时最新版本是 V2.1 版本)跳转到 Releases 页面 Assets 目录,直接下载可执行文件的压缩文件。解压后,命令行进入到该 dex-tools-2-2.1 路径下进行 dex 操作。
dex2jar 工具的 GitHub 源码链接
通过shell 脚本,来执行 dex 到 jar 的转换
二、目标 dex 文件操作:
apk 安装包本质是经过特殊处理的压缩包,可以直接将 target.apk 修改后缀名为 target.zip,然后通过解压工具解压,解压后的文件夹包含各种资源文件和文件夹,以及 dex 文件,如果apk是多个 dex 文件组成,解压后会有多个dex 存在,可逐个操作。
需要注意的是,直接通过 zip 解压出来的文件,资源文件(比如 manifest 等文件)都是一些二进制码,无法直接查看,如果想要查看,请看该专题的第二篇文章来操作。
执行脚本:sh d2j-dex2jar.sh classes.dex
执行脚本,操作 dex 文件转换为 jar 文件
生成 jar 文件
三、通过JD-GUI 工具查看 jar 文件
JD-GUI官网链接:http://java-decompiler.github.io/下载对应对应系统的工具。下载完成后解压,直接打开JD-GUI 文件工具直接将 之前通过dex2jar生成的 jar文件拖入 JD-GUI 即可查看源码通过工具可以查看到源码是否有混淆。
官网页面,下载对应系统的工具包
解压后直接打开该工具
直接将生成的目标jar文件拖到该工具页面,即可查看
安卓反编译专题文章:
安卓反编译(一):反编译概述安卓反编译(二):Apktool 工具安卓反编译(三):dex2jar 和 JD-GUI 工具