A modern Java bytecode editor that simplifies reverse engineering and modification of Java and Android applications.
Recaf is a modern Java bytecode editor designed to simplify the reverse engineering and modification of Java and Android applications. It abstracts away the complexities of compiled Java programs, such as constant pool management and stack frame calculation, making bytecode editing accessible without requiring deep low-level expertise.
Reverse engineers, security researchers, and developers who need to analyze, modify, or deobfuscate compiled Java and Android applications, ranging from beginners to experts.
Developers choose Recaf for its user-friendly interface that automates tedious low-level details, its comprehensive toolset including multiple decompilers and deobfuscation features, and its extensibility through scripting and plugins for automation and custom workflows.
The modern Java bytecode editor
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically handles constant pools, stack frames, and wide instructions, making bytecode editing accessible without deep JVM expertise, as highlighted in the README.
Allows switching between multiple decompilers with fully configurable parameters, enhancing code analysis flexibility for different reverse engineering scenarios.
Includes automatic patching of malicious class files and renaming tools for obfuscated members, simplifying the analysis of protected Java and Android applications.
Exposes modular APIs for scripts and plugins, enabling automation and custom feature development, as detailed in the developer documentation.
The built-in compiler's effectiveness varies with code complexity and obfuscation, as admitted in the README, which can lead to unreliable recompilation in some cases.
Setting up for development requires importing via gradle or IDE configuration, which can be cumbersome for quick contributions or custom builds compared to simpler tools.
Primarily designed as a GUI application, making it less seamless for headless or fully automated CI/CD pipelines without extensive scripting effort.