m1717 发表于 2019-10-25 03:56:00

Android逆向工程:如何正确使用dex2jar、jd-gui

## 一、JD-GUI 简介

**为什么要用jd-gui?**

显示“.class”文件的Java源代码。

JD-GUI是一个独立的图形实用程序,显示“.class”文件的Java源代码。您可以使用JD-GUI浏览重建的源代码,以便即时访问方法和字段。

## 二、JD-GUI 安装

### 1.下载 JD-GUI

官方点击:http://jd.benow.ca/



### 2.安装 JD-GUI

解压 JD-GUI

用解压缩软件,解压JD-GUI:



## 三、JD-GUI 使用

### 1.使用 JD-GUI

**双击运行**



**将jar文件拖到工作区即可打开**



参考文献:

官方网站:http://jd.benow.ca/

## 四、dex2jar 简介

**为什么要用dex2jar?**

dex2jar顾名思义,dex文件2到jar文件,也就是将apk中的java源码编译生成的java字节码文件反编译成java源码,其中2的英文谐音为two,也就是 dex 到 jar,这样对于我们来说就能看到真实的程序啦。

dex2jar包含以下含义:

1. dex-reader旨在读取Dalvik可执行文件(.dex / .odex)格式。它具有与ASM类似的轻量级API。

2. dex-translator旨在执行转换作业。它读取dex-ir格式的dex指令,经过一些优化后,转换为ASM格式。

3. dex-translator使用的dex-ir,用于表示使用.class文件的dex指令dex-tools工具。

4. d2j-smali将dex反汇编为smali文件并从smali文件汇编dex。与smali / baksmali不同的实现,相同的语法,但我们支持类型desc“Lcom / dex2jar \ t \ u1234;”中的转义

5. dex-writer以与dex-reader相同的方式编写dex。

## 五、dex2jar 安装

### 1.下载 dex2jar

官方点击:https://sourceforge.net/projects/dex2jar/files/latest/download



点击开始下载按钮,等待下载完成。



### 2.安装 dex2jar

解压 dex2jar

用解压缩软件,解压dex2jar:



## 六、dex2jar 使用

### 1.解压 apk

解压 要反编译的apk:

将test.apk 改为 test.zip,并解压:



解压之后你将会得到以下文件:



### 2.使用 dex2jar

将要反编译的 dex 复制到 dex2jar-2.0 根目录:





### 3.运行 命令完成编译

打开dex2jar-2.0根目录,运行 cmd命令,输入以下:

```php
d2j-dex2jar.bat classes.dex
```



这时候我们就能看到 class啦,搞定。



参考文献:

官方网站:https://sourceforge.net/projects/dex2jar/
页: [1]
查看完整版本: Android逆向工程:如何正确使用dex2jar、jd-gui