java - 如何将DEX反编译成Java源代码?

标签 java android reverse-engineering decompiler dex

如何将Android DEX(VM字节码)文件反编译成对应的Java源代码?

最佳答案

很简单

获取这些工具:

  1. dex2jar将dex文件翻译成jar文件

  2. jd-gui查看jar中的java文件

由于dex2jar做了一些优化,源代码可读性很强。

程序:

下面是如何反编译的过程:

第 1 步:

将test_apk-debug.apk中的classes.dex转换为test_apk-debug_dex2jar.jar

d2j-dex2jar.sh -f -o output_jar.jar apk_to_decompile.apk
d2j-dex2jar.sh -f -o output_jar.jar dex_to_decompile.dex

Note 1: In the Windows machines all the .sh scripts are replaced by .bat scripts

Note 2: On linux/mac don't forget about sh or bash. The full command should be:

sh d2j-dex2jar.sh -f -o output_jar.jar apk_to_decompile.apk 

Note 3: Also, remember to add execute permission to dex2jar-X.X directory e.g. sudo chmod -R +x dex2jar-2.0

dex2jar documentation

第 2 步:

在JD-GUI中打开jar

The decompiled source

关于java - 如何将DEX反编译成Java源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1249973/

相关文章:

reverse-engineering - Hibernate 工具,逆向工程

Java catch block ,捕获的异常不是最终的

java - 更改存储在集合中的对象的状态

android - ImageView.getDrawingCache() 在 Android 4.4.4 及以下版本上为 null

android - 从 Google Play Store 升级应用程序,显示为 "open"

java - 如何使hibernate映射成为创建的表?

java - 为什么我需要排除 "spring-boot-starter-logging"才能使用 spring-geode?

java - 如何将订餐代码转换为人类可以在 Java 中读取的统计数据?

java - Android Volley : BasicNetwork. performRequest:意外的响应代码 404

pdf - 如何解码PDF流?