工具
Bytecode Viewer Java/Android 逆向工程套件
用于检查已编译 Java 与 Android 程序的桌面套件:拖入 class、JAR、WAR、APK、DEX、XAPK 或 APKM 文件即可浏览其中的类和资源,并可并排显示最多三个反编译器或反汇编器视图。README 列出六个内置 Java 反编译器(Krakatau、CFR、Procyon、FernFlower、JADX 和 JD-GUI)、Krakatau 与 Smali/baksmali 反汇编器和汇编器以及 javap,还有用于 APK/DEX 转换的 Dex2Jar 和 Enjarify、用于编辑的内置 Java 编译器和静态搜索。Java 和 JavaScript 插件会收到全部已加载类的 ASM ClassNode,可用于字符串去混淆或恶意代码搜索等任务。
使用条件与局限
- 审阅时的版本为 v2.13.2,发布于 2026-01-01,并于 2026-01-06 重新发布以修复 Windows 上的 APK 问题,以单个可运行 JAR 形式提供,用 java -jar 启动。其发布说明称这是开发中版本,命令行界面正在重写、目前无法使用,需要命令行的用户请改用 v2.12;所审阅的 master 分支提交比该标签多十个修复提交,声明的版本仍为 2.13.2。
- pom.xml 以 Java 8 为目标,并因新版需要 Java 11+ 而将内置 JADX 固定在 1.4.7;从源码构建使用 mvn package。部分工具会调用外部运行环境:Krakatau 反编译器需要配置 Python 2 命令和 JRE 的 rt.jar 库,Enjarify 需要 Python 3。README 建议在出现 OutOfMemoryError 时用 -Xmx 增大堆内存。
- 输入由使用者提供:class、JAR、ZIP、WAR、APK、DEX、XAPK 或 APKM 文件。反编译得到的 Java 代码是从字节码重建的,并非恢复出的原始源码,各内置反编译器的结果也可能不同;并排视图正是为了对比这些结果。
- LICENSE 文件为 GPL-3.0;内置的反编译器和转换工具沿用各自的许可证。仓库发布的 Zip Slip 安全公告(CVE-2022-21675)影响 v2.10.x,自 v2.11.0 起修复。本次未反编译任何文件。
关于此条目
- 类型
- 工具
- 类别
- JVM 字节码工具
- 关联
- 基础工具
- 目标
- 应用
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · Konloch/bytecode-viewer · 修订 31430e0
- README.md#L33-L46 GitHub · Konloch/bytecode-viewer · 修订 31430e0
- pom.xml#L1-L55 GitHub · Konloch/bytecode-viewer · 修订 31430e0
- src/main/java/the/bytecode/club/bytecodeviewer/decompilers/impl/KrakatauDecompiler.java GitHub · Konloch/bytecode-viewer · 修订 31430e0
- src/main/java/the/bytecode/club/bytecodeviewer/util/apk2Jar/Enjarify.java GitHub · Konloch/bytecode-viewer · 修订 31430e0
- LICENSE GitHub · Konloch/bytecode-viewer · 修订 31430e0
- https://github.com/Konloch/bytecode-viewer/releases/tag/v2.13.2
- https://github.com/Konloch/bytecode-viewer/security/advisories/GHSA-3wq9-j4fc-4wmc