Introduction to Recaf
Recaf is a modern and user-friendly tool designed for editing Java bytecode, making it easier for users to navigate and modify complex Java programs. It simplifies the process of editing bytecode, allowing users to focus on what matters without getting bogged down by intricate details of Java applications.
Download Options
Recaf offers several downloading options to suit different needs:
- Launcher: Users can find detailed usage instructions on the launcher's repository.
- Snapshot Releases: These can be accessed through the CI actions for release artifacts.
- Independent Releases: Presently, there are no independent releases for version 4X.
Key Features
- Simplified Bytecode Editing: Recaf enables easy editing of Java bytecode, managing complex aspects such as the constant pool and stack frame calculations automatically.
- User-Friendly Interface: The interface is designed to be intuitive, allowing users to navigate and perform context-sensitive actions effortlessly.
- Compatibility with Java and Android: Recaf supports both standard Java and Android applications, broadening its usability.
- Multiple Decompilers: Users can switch between different decompilers, with fully configurable parameters.
- Built-in Compiler: It allows recompiling of decompiled classes, even if there are referenced classes missing, as long as the code is not overly complex or obfuscated.
- Bytecode Assembler: Features a simple syntax and provides tools such as viewing local variables and stack values during methods, and converting Java source code snippets to bytecode sequences.
- Advanced Search and Deobfuscation: Users can search for strings, classes, references, and more. It also offers tools for deobfuscating code, automatically patching troublesome class files to prevent crashes, and handling jar/zip files more effectively by mimicking JVM reading techniques.
- Live Java Process Attachment: Recaf can attach to running Java processes with instrumentation capabilities.
A full list of features is available in their user documentation.
Scripting and Plugins
Recaf's functionality is exposed through modular APIs, allowing for easy automation with scripts, or plugins for complex tasks. Users can add new features via plugins that register hooks in available APIs. For creating scripts or plugins, users can refer to the developer documentation, especially the "plugins & scripts" section.
Command Line Functionality
Recaf can operate as a command-line application, making it a versatile tool when combined with scripts executed at startup. Current launch arguments can be viewed with the --help
command.
Development Setup
To get started with Recaf development:
- Clone the repository using
git clone https://github.com/Col-E/Recaf.git
. - Open the project in an Integrated Development Environment (IDE) or build it with Gradle.
Using an IDE:
- Import the project using the
build.gradle
file. - Create a run configuration with the main class
software.coley.recaf.Main
.
Without an IDE:
- Run
gradlew build
to generate the output inrecaf-ui/build/libs/recaf-ui-{VERSION}-all.jar
.
Recaf is a powerful tool for developers needing to dive deep into the bytecode of Java applications, offering a suite of features that simplify and enhance bytecode manipulation.