Recaf is an open-source Java bytecode editor built on top of Objectweb's ASM. ASM is a bytecode manipulation library that abstracts away the constant pool and a few other class-file attributes. Since keeping track of the constant pool and managing proper stackframes are no longer necessary, complex changes can be made with relative ease. With additional features to assist in the process of editing classes, Recaf is the most feature rich free bytecode editor available.
Useful Information
- Specification: Chapter 4. The class File Format
- JVM Architecture 101: Get to Know Your Virtual Machine
- Java opcodes:
For screenshots check the screenshots directory. They appear throughout the documentation as well.
Libraries used:
- ASM - Class editing abilities
- CFR - Decompilation
- Simple-Memory-Compiler - Recompilation of decompiled code
- JIMFS - Virtual file system
- ControlsFX - Custom controls (Used in pretty much everything)
- RichTextFX - Decompiler code highlighting
- JRegex - Pattern matching for decompiler code highlighting
- minimal-json - Json reading/writing for config storage
- Commonmark - Markdown parsing
- picocli - Command line argument parsing