Hello again r/ReverseEngineering its been over a year since I last shared my pet project, Recaf. Since then it has been almost completely re-written and is continues to make improvements upon what a reversing tool should provide.
2.X aims to make reverse engineering as user friendly as possible. How so? Here's the gist:
Automatic compiler integration
Dependencies pulled from your current workspace (primary file plus any libraries)
Can't find a dependency? Don't worry, Recaf will dynamically generate missing code for you via JPhantom. That's right, you don't even need to specify your missing compile dependencies.
Text based bytecode assembler with user friendly features
Reference variables not by their index but by their source-code name for maximum legibility
Write short bytecode snippets as plain old Java source code, Recaf will translate inline expressions for you
See what values are on the stack and in your local variables at any point by selecting the line
Verify all your modifications on the fly to prevent time-wasting mistakes
Multiple class representations, defaulting to decompiled code
View the class in one of 3 decompilers, CFR, FernFlower, or Procyon
Context sensitive right-click actions on source code elements
Automatically suggest switching decompilers when errors occur in current one
Code too obfuscated? Change the class representation to a table to show fields, methods, and class attributes in an organized table while retaining all the context sensitive menu actions
Highly configurable search
Search for string constants by containment, equality, starts-with, ends-with, or regex
You can do the same search types with member references
You can also do the same for disassembled instruction text
Track changes per each class modified with the ability to revert to a prior state at any time
Apply mappings to an obfuscated file from a variety of popular mapping formats
More info on the documentation page: https://www.coley.software/Recaf-documentation/
And beyond those points, there's a lot more planned for the future.
I'm always looking for suggestions and bug reports, so do feel free to drop a comment.
Happy reversing and merry Christmas o/