工具
dex2jar Android DEX 转换工具集
用 Java 编写的工具集,可将 Android DEX 字节码(包括 APK 内的 DEX 文件)转换为打包成 jar 的 JVM .class 文件,供 Java 反编译器和字节码工具使用。它还通过类似 ASM 的 API 读写 DEX,以自有实现进行 smali 反汇编与汇编,可将 jar 转回 DEX,并附带 d2j-decrypt-string 等辅助工具。
使用条件与局限
- 最新发行版 v2.4(2023-10-03,说明为“bugfix”)即所审阅的 2.x 分支最新提交,此后没有新提交。其下载包为 dex-tools-v2.4.zip,而 README 中的构建步骤仍写着 2.1-SNAPSHOT 压缩包。README 将 GitHub 列为项目主页,此前曾托管于 Google Code、Bitbucket 和 SourceForge。
- 全部运行在 Java 上:构建以 Java 8 为目标,使用 Gradle 6.9.1 包装器、ASM 9.5 和 ANTLR 4.9.3;d2j-smali 保留该 ANTLR 版本,是因为更新的版本需要 Java 11+。d2j-* 命令以生成的 shell 与批处理启动脚本提供。CI 工作流在推送、拉取请求和发行标签时于 JDK 8 上运行 gradle check 和 distZip。
- 输入为来自使用者自有应用的 .dex 或 .odex 文件,或包含 DEX 的 APK、zip 文件;读取器接受 035 至 040 版本的 DEX,其他版本会在警告后尝试处理。输出是由 class 文件组成的 jar,而非 Java 源码,阅读代码仍需另行使用 Java 反编译器。测试资源中有小型 DEX 和 zip 样本,dex-translator/libs 中还附有 Android dx 30.0.2 的 jar。
- 采用 Apache-2.0 许可,版权声明见 LICENSE.txt 和 NOTICE.txt。
关于此条目
- 类型
- 工具
- 类别
- Android 工具
- 关联
- 基础工具
- 目标
- 应用
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · pxb1988/dex2jar · 修订 b5bda4f
- build.gradle GitHub · pxb1988/dex2jar · 修订 b5bda4f
- d2j-smali/build.gradle GitHub · pxb1988/dex2jar · 修订 b5bda4f
- dex-tools/src/main/bin_gen/class.cfg GitHub · pxb1988/dex2jar · 修订 b5bda4f
- dex-reader/src/main/java/com/googlecode/d2j/reader/DexFileReader.java GitHub · pxb1988/dex2jar · 修订 b5bda4f
- .github/workflows/gradle.yml GitHub · pxb1988/dex2jar · 修订 b5bda4f
- gradle/wrapper/gradle-wrapper.properties GitHub · pxb1988/dex2jar · 修订 b5bda4f
- LICENSE.txt GitHub · pxb1988/dex2jar · 修订 b5bda4f
- NOTICE.txt GitHub · pxb1988/dex2jar · 修订 b5bda4f
- https://github.com/pxb1988/dex2jar/releases/tag/v2.4
同分区更多条目:应用
- apk.sh Android 应用分析脚本 · 工具
- Aegis:追踪登录验证码计算 · 案例
- Notion:追踪剪贴板桥接 · 案例
- PicoPrint:LX-D02 打印机调查 · 案例
- ReaCut:视频编辑器重建案例 · 案例
- CF632BLE:基于体脂秤协议研究的本地客户端 · 案例