dex2jar 是一款面向 Android 开发者的实用转换工具,专门把 APK 或 DEX 文件中的 Dalvik 字节码还原成 Java 的 .class 文件。它本质上是操作 DEX 格式与 Java 类文件的工具集合,为逆向分析、代码调试或学习研究提供了便利。该项目提供了三个不同版本,遇到转换异常时可更换版本尝试,往往能顺利解决问题。

1、 命令行转换时,如果某个类解析失败,程序会跳过该错误继续执行,不会直接退出
2、 修复了读取 class 注解时出现的一个问题,对应官方 issue 42
3、 调整了内部包名,从 pxb.android.dex2jar 迁移为 com.googlecode.dex2jar
4、 处理了 issue 33 和 issue 43,允许在启动参数里为 JVM 预设内存大小
5、 解决了解析 dex 文件时,java/lang/Object 类父类为 null 所引发的空指针异常
6、 优化了异常信息的可读性,相关改动对应 issue 44
- 先将 APK 文件重命名为 .zip,解压后取出其中的 classes.dex 文件
- 把 classes.dex 放到 dex2jar.bat 同目录,直接拖拽该文件到批处理脚本上,即可生成 classes.dex.dex2jar.jar
- 用解压工具打开生成的 jar 包,取出里面的 .class 文件
- 接着使用 JD-GUI 等图形化工具打开 jar,选择 File -> Save JAR Source,可以导出可读的 Java 源码,多数情况下能还原出 90% 以上的原始代码
- 若不想拖拽,也可以在命令行窗口切换到 dex2jar 所在目录,手动执行 dex2jar classes.dex 命令
- 执行成功后,同目录会出现 classes.dex.dex2jar.jar,这个文件就是转换后的 JAR 包
- 使用 JD-GUI 打开该 JAR,即可直接浏览反编译得到的源码,或者将其导出保存
- ,也可以先用 rar 等工具解压 jar 中的 class 文件,再用 jad 或 DJ Java Decompiler 这类反编译工具逐一转成 .java 文件
- 提供三种不同的 dex2jar 版本,当某个版本转换失败或报错时,换用另一个版本往往能解决问题
- 转换前确认 dex 文件完整且未经过加固或混淆,否则部分类可能无法正常解析
- 生成的 jar 包仅供学习研究用途,请勿用于侵权或非法目的
- 若转换过程中遇到内存不足,可以尝试在启动参数中显式指定 JVM 堆大小
(您的评论需要经过审核才能显示)
0条评论