Recaf – A Modern Java Bytecode Editor

Recaf is an easy to use modern Java bytecode editor based on Objectweb’s ASM. No more hassling with the constant pool or stack-frames required. Check out the docs for more information.

Recaf Requirements

You can run Recaf with Java 8 or higher (Its reccomended that you use the lastest jdk8 release from jdk.java.net). Using Java 9 and higher requires an additional step to use.

Java 8: No additional steps required.
Java 9+: Update the controlsfx dependency in the pom.xml such that the 8.40.14 release is changed to the 9.0.0 release. You can then build from the source code with maven (Open a terminal and enter mvn package assuming you have Maven installed). Be aware that the github releases are based on Java 8.

Also Read: Tyton : Kernel-Mode Rootkit Hunter

Running & Updates

To get the latest version of Recaf you can either download the source code and compile with maven or grab a binary from the releases page.

As a jar file you can double click it to run Recaf. However it is reccomended that you launch via command line so you can specify the JDK java executable. Doing this will unlock additional features that rely on JDK functionality (tools.jar). For example on windows you would use the following command:

“C:\Program Files\Java\jdk1.8.0_202\bin\java.exe” -jar recaf.jar

Note: To ensure the classpath contains the contents of jdk\lib\tools.jar copy it into your jdk\jre\lib\ext folder.

Note: You can automate opening files via command line:

java -jar recaf.jar -i MyJar.jar -c com/example/MyClass

Note: When launching Recaf you will be notified about updates as they come out.

Libraries used:

R K

Recent Posts

Kali Linux Commands Cheat Sheet: Complete Quick Reference

This cheat sheet covers the essential Kali Linux commands every pentester and ethical hacker uses…

2 weeks ago

What I Wish I Knew Before Learning Malware Analysis and Reverse Engineering

When I first started learning malware analysis and reverse engineering, I thought the hardest part…

2 weeks ago

git fetch vs git pull: How They Work and When to Use Each

Both git fetch and git pull talk to a remote repository, but they do very different things to your…

4 weeks ago

git cherry-pick Command: Apply Commits from Another Branch

Sometimes the change you need already exists, just on the wrong branch. A hotfix lands…

4 weeks ago

Best Email APIs for Secure Business Email: Why Developers Are Moving Beyond SMTP

Email is still one of the most important communication channels inside modern applications. Password resets,…

4 weeks ago

Nginx Commands in Linux: Start, Stop, Reload, Test, and Log

Nginx is a high-performance web server and reverse proxy trusted by some of the largest…

4 weeks ago