将apk反编译成java源码(classes.dex转化成jar文件)
目录
为什么要用dex2jar?
dex2jar顾名思义,dex文件2到jar文件,也就是将apk中的java源码编译生成的java字节码文件反编译成java源码,其中2的英文谐音为two,也就是 dex 到 jar,这样对于我们来说就能看到真实的程序啦。
dex2jar 简介
dex2jar包含以下含义:
- dex-reader旨在读取Dalvik可执行文件(.dex / .odex)格式。它具有与ASM类似的轻量级API。
- dex-translator旨在执行转换作业。它读取dex-ir格式的dex指令,经过一些优化后,转换为ASM格式。
- dex-translator使用的dex-ir,用于表示使用.class文件的dex指令dex-tools工具。
- d2j-smali将dex反汇编为smali文件并从smali文件汇编dex。与smali / baksmali不同的实现,相同的语法,但我们支持类型desc“Lcom / dex2jar \ t \ u1234;”中的转义
- dex-writer以与dex-reader相同的方式编写dex。
dex2jar 安装
下载 dex2jar
官方点击:https://sourceforge.net/projects/dex2jar/files/latest/download
点击开始下载按钮,等待下载完成。
安装 dex2jar
解压 dex2jar
用解压缩软件,解压dex2jar:
dex2jar 使用
解压 apk
解压 要反编译的apk:
将test.apk 改为 test.zip,并解压:
解压之后你将会得到以下文件:
使用 dex2jar
将要反编译的 dex 复制到 dex2jar-2.0 根目录:
运行 命令完成编译
打开 dex2jar-2.0根目录,运行 cmd命令,输入以下:
d2j-dex2jar.bat classes.dex
这时候我们就能看到 class啦,搞定。
参考文献: