Share-devn/bytecodelens

GitHub: Share-devn/bytecodelens

一款面向 JVM 字节码的现代桌面逆向工程驾驶舱,整合反编译、实时附加、十六进制查看与去混淆能力。

Stars: 1 | Forks: 0

BytecodeLens logo # BytecodeLens **Java RE 驾驶舱 —— 反编译、附加、差异对比、补丁** [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE) [![Release](https://img.shields.io/github/v/release/Share-devn/bytecodelens?include_prereleases)](https://github.com/Share-devn/bytecodelens/releases) [![Java](https://img.shields.io/badge/Java-21%2B-orange.svg)](https://adoptium.net) [![Tests](https://img.shields.io/badge/tests-474%20passing-brightgreen.svg)](#) [![Stars](https://img.shields.io/github/stars/Share-devn/bytecodelens?style=social)](https://github.com/Share-devn/bytecodelens/stargazers)
面向 Java / JVM 字节码的现代桌面逆向工程工具。四种反编译器自动回退,实时 JVM 附加与热重载,工业级十六进制查看器(带结构叠加),去混淆流水线,无头 CLI。 ![BytecodeLens](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/76e1a98cf7120111.png) ## 为何选择 BytecodeLens 面向 JVM 的桌面逆向工作台。它不是单一的反编译 UI,而是融合 JADX、Recaf 与 JD-GUI 优势的驾驶舱,并具备它们所不具备的能力。 - **四种反编译器,永不失败的回退机制。** CFR · Vineflower · Procyon · ASM 骨架。`Auto` 链依次尝试每种反编译器,超时 15 秒后无缝切换——你永远不会看到空白标签页。 - **实时 JVM 附加 + 检查器。** 通过 PID 附加到运行中的进程。九个标签页的实时数据:堆/线程/CPU 折线图、线程堆栈、死锁检测、GC 统计、按池内存细分。热点重载可将重定义类注入目标进程。 - **工业级十六进制查看器。** 支持解析 `.class` / ZIP / PNG 的结构叠加,提供可点击的树形视图。数据检查器支持 17 种数据解释(大端/小端)。支持按十六进制/ASCII/UTF-16 查找、跳转到偏移、导出为 C 数组、Shannon 熵图、二进制差异对比。 ## 功能特性 ### 编辑器 - 每个类对应反编译 / 字节码 / 十六进制 / 差异对比标签页 - 对比标签支持动态列与每列独立引擎选择 - 编辑反编译源码 → 通过虚拟类重新编译为 javac - 汇编 DSL 用于原始字节码补丁 - 悬停高亮标识符,Ctrl+点击跳转声明,光标行高亮 - 语法主题:Primer Dark/Light、Dracula、Monokai、Solarized Dark/Light ### 导航与交叉引用 - 可展开的类树(方法与字段内联,IntelliJ 风格) - 预览 + 固定标签页,支持拖拽重排与窗口分离 - 查找用法(Alt+F7 / X):带层级树、过滤栏、每个调用位置的代码片段预览 - 重写者与实现者会显示在查找用法结果中 - 递归调用者树,支持环检测 - 跳转到类(Ctrl+N)模糊搜索,后退/前进导航历史 - 后台反编译缓存——包邻居在低优先级线程中预加载 ### 去混淆 11 次转换传递,加上两种反篡改辅助: - 死代码删除 · 不可达后终止(SC2 风格)· 不透明谓词简化 - 静态值内联 · 调用结果内联 · 枚举名称还原 - 非法名称映射 · Kotlin 名称还原 · Kotlin 数据类还原 - 源名称还原 · 栈帧移除 - 剥离字段上的 `Code` · 移除非法注解 ### 映射 支持读写 11 种格式: - ProGuard/R8 · Tiny v1 · Tiny v2 · SRG · XSRG · TSRG · TSRG v2 · CSRG · JOBF · Enigma · Recaf - 映射差异 / 组合 / 反向,用于堆叠重构工作流 - 内容嗅探加载器根据文件内容而非扩展名选择解析器 ### 搜索 - 模式:字符串 · 名称 · 字节码 · 正则 · 数字 · **注释**(你的个人笔记) - 字符串字面量交叉引用索引在加载时构建 - 流式结果,支持取消、排序下拉框与进度显示 - 每个工作区的包排除通配符 ### JVM 附加 - 使用动态构建的代理 JAR 的 `VirtualMachine.attach(pid)` - 附加后**立即**打开检查器——无需等待完整类转储 - 每 2 秒(可配置)刷新实时折线图 - 通过 `Instrumentation.redefineClasses` 热替换类 ### 无头 CLI ``` bytecodelens decompile app.jar -o out/ --engine auto bytecodelens analyze app.jar --report-json report.json bytecodelens mappings convert input.srg --to TINY_V2 -o output.tiny bytecodelens mappings diff base.srg updated.srg --report-json diff.json ``` CLI 模式下不加载 JavaFX 运行时。 ### 定制化 - 完整设置窗口(Ctrl+,)实时应用——13 个分区,约 50 个开关 - 可定制键位绑定,支持 IntelliJ / VSCode / Recaf / 默认预设 - 每个工作区独立状态:打开的标签页、分隔条位置、排除的包、注释 ## 系统要求 - **Java 21 或更新版本**(已在 JDK 25 上测试) - Windows / macOS / Linux ## 下载 预构建归档包请查看 [发布页面](https://github.com/Share-devn/bytecodelens/releases)。 可运行的 Fat Jar: ``` java -jar bytecodelens-1.0.0-all.jar ``` ## 从源码构建 ``` git clone https://github.com/Share-devn/bytecodelens.git cd bytecodelens ./gradlew run # launch the GUI ./gradlew shadowJar # build bytecodelens--all.jar ./gradlew test # 474 tests ``` ## CLI 使用说明 同一 JAR 文件也可作为无头工具使用。第一个位置参数决定模式——识别的子命令会完全绕过 JavaFX 运行时。 ``` java -jar bytecodelens-1.0.0-all.jar help java -jar bytecodelens-1.0.0-all.jar decompile app.jar -o out/ java -jar bytecodelens-1.0.0-all.jar analyze app.jar --report-json report.json ``` ## 许可证 Apache License 2.0 —— 参见 [LICENSE](LICENSE)。 ## 对比 | | BytecodeLens | Recaf | JADX | JD-GUI | |-------------------------------|:---:|:---:|:---:|:---:| | 四种反编译器与回退机制 | ✅ | ❌ | ❌(单一) | ❌(单一) | | 对比反编译器并排显示 | ✅ | ❌ | ❌ | ❌ | | 编辑并重新编译 Java | ✅ | ✅ | ❌ | ❌ | | 实时 JVM 附加 + 检查器 | ✅(9 标签页) | ✅(6 标签页) | ❌ | ❌ | | 十六进制查看器(结构叠加) | ✅ | ⚠️ | ⚠️ | ❌ | | 映射格式数量 | **11** | 13+ | 13+ | ❌ | | 去混淆传递次数 | **11 + 2** | 23 | 插件 | ❌ | | 无头 CLI | ✅ | ✅ | ✅ | ❌ | | 字符串解密 | ✅(BLPL + 模拟) | ❌ | 插件 | ❌ | | JNI 符号解析 | ✅ | ❌ | ❌ | ❌ | | Android(APK / DEX)支持 | ❌ | ✅ | ✅ | ❌ | | 许可证 | Apache 2.0 | MIT | Apache 2.0 | GPL-3.0 | ## 关键词 Java 反编译器 · JVM 字节码编辑器 · 字节码查看器 · 逆向工程 · 去混淆 · JVM 逆向工程 · Java 字节码分析 · JAR 分析器 · 类文件查看器 · CFR 反编译器 · Vineflower · Procyon · ASM · 十六进制编辑器 · JVM 附加 · JavaFX 字节码工具 · 静态分析 · 混淆器检测 · Kotlin 反编译器 · Java 热重载 · 映射转换器 · SRG · TSRG · Tiny · Enigma · Recaf 替代 · JADX 替代 · JD-GUI 替代
标签:Amass, ASM, Attacher, CFR, Diff & Patch, GC统计, Hex Editor, JARM, Java RE, Java反编译, JDK21, JS文件枚举, JVM字节码, Procyon, SSH蜜罐, Vineflower, 二进制差分, 云资产清单, 内存分析, 十六进制查看器, 去混淆, 反向工程工作台, 后台面板检测, 域名枚举, 多反编译器, 无头模式, 桌面工具, 死锁检测, 热加载, 熵图, 类比对, 线程分析, 结构叠加, 脱壳, 自动化反编译, 蓝队工具, 跨平台桌面工具, 进程注入, 逆向工程