项目简介
jadx(Java Decompiler for Android DEX)是目前最流行的 Android DEX/APK 反编译工具,能将 APK 中的 DEX 字节码高质量地还原为可读的 Java 源代码。它由 skylot 于 2016 年创建,以反编译质量极高、开源免费、持续 10 年更新而著称,是 Android 逆向工程领域的事实标准工具。
GitHub 仓库位于 github.com/skylot/jadx,拥有近 5 万 Star,是 Android 安全生态中 Star 数最高的工具之一。
GitHub 数据
| 指标 | 数据 |
|---|---|
| Stars | 48,947 |
| License | Apache-2.0 |
| 主要语言 | Java |
| 最新版本 | v1.5.5(2026-06 活跃) |
| 创建时间 | 2016 年 |
核心功能
- DEX → Java 反编译:高质量将 DEX/APK 字节码还原为 Java 源码
- APK 反编译:直接拖入 APK 文件即可分析
- GUI 图形界面:自带直观的桌面应用,支持代码导航、语法高亮
- 命令行模式:
jadxCLI 适用于自动化脚本和 CI 流程 - Gradle 插件:
jadx-gradle-plugin可在构建流程中集成 - 反混淆:自动识别并还原混淆后的类名/方法名
- 资源查看:查看 APK 内部的资源文件(XML、图片、字符串等)
- 搜索功能:全局搜索类名、方法名、字符串
- Export Gradle 项目:将反编译结果导出为 Gradle 工程方便二次分析
技术栈
| 层次 | 技术 |
|---|---|
| 核心引擎 | Java |
| 格式解析 | DEX 格式解析,Java 字节码分析 |
安装与使用
方式一:直接下载 Release
从 GitHub Releases 页面 下载 GUI 包(jadx-gui)或 CLI 包。
方式二:macOS 通过 Homebrew 安装
brew install jadx
方式三:源码编译
git clone https://github.com/skylot/jadx.git
cd jadx
./gradlew build
基本使用:
# GUI 界面(直接拖入 APK)
jadx-gui app.apk
# CLI 反编译到目录
jadx app.apk -d output-dir
# 反混淆输出
jadx app.apk --deobf -d output-dir
# 导出为 Gradle 工程
jadx app.apk --export-gradle -d output-dir
适用场景
- Android 应用逆向分析
- APK 安全审计与漏洞挖掘
- 恶意软件行为分析
- SDK 合规性审查(第三方库行为分析)
- 学习 Android 开发(查看他人 App 的实现方式)
- 竞品分析(了解竞品 App 的架构和功能实现)
竞品对比
| 竞品 | 类型 | 特点 | 局限 |
|---|---|---|---|
| Apktool | APK 解码/重打包 | 偏向 Smali 汇编和资源解码 | 不反编译 Java 源码 |
| GDA | Android 反编译器 | 国产、免费 | 功能偏少,更新不活跃 |
| IDA Pro | 商业反汇编器 | 通用反编译、多架构 | 商业收费、价格高昂 |
| Bytecode Viewer | 多合一逆向工具 | 集成多种反编译器 | 偏向浏览,功能深度不足 |
核心优势:
- 反编译质量极高,在同类开源工具中表现最好
- 开源免费(Apache-2.0),无任何限制
- GUI + CLI 双模式,兼顾小白和自动化
- 自 2016 年持续更新至今,近 10 年的活跃维护
- 社区庞大,问题响应迅速
参考资料
- GitHub 仓库:https://github.com/skylot/jadx
- 官方 Wiki:https://github.com/skylot/jadx/wiki
- 下载页面:https://github.com/skylot/jadx/releases
文档信息
- 本文作者:zhupite
- 本文链接:https://zhupite.com/sec/jadx.html
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)