Releases: LLVM-but-worse/java-disassembler
JDA 1.2.0
Many new features and bug fixes! Please enjoy!
MapleIR
- Totally revamped the MapleIL decompiler, it's much easier to read now for people who are used to Java source code
- The old MapleIL decompiler has been renamed to MapleIL (Debug)
Deobfuscation filter
- Added a simple arithmetic simplifier and constant folder to deal with arithmetic obfuscation of constants
- Added dead code simpification
Please try it out! Select the MapleIL decompiler. And enable the 'Deobfuscator' pipeline checkbox for your favorite decompiler. To install the plugin, place the jdaplugin jar into ~/.jda/plugins
(Linux) or %userprofile%\.jda\plugins
(Windows).
Decompilation
- Added new deobfuscation filter to kill illegally-named annotations that cause decompilers to crash
- Added new deobfuscation filter to drop local variable tables
Try them out under the settings for each decompiler.
Internal
Performance optimizations for Procyon
JDA 1.1.1
JDA 1.1.0 (+hotfix)
Contains a hotfix for Java 10 JREs. The xref window is also searchable in this version.
JDA 1.1.0
A few small things and a few big things in this preview release.
Internal
- Numerous small QoL bug fixes and improvements
- Updated Fernflower and CFR
MapleIR
- Fix for block ordering which caused that annoying IndexOutOfBoundsException for the MapleIL decompiler
- Internal refactors
- Tighter integration with stdlib
UI
- You can now click to highlight tokens like in IDA Pro. All occurrences of the token are highlighted for ease of browsing.
- Implemented a hacked-together "xref" feature that just looks for matching bytes in the
.class
file. It's better than nothing. - Clearer exception UI
- Updated the look and feel so it feels less flimsy
Plans for the future (soon!):
- Actual xrefs
- Data flow analysis
- Control flow reconstruction in MapleIL decompiler
- Easy navigation between decompiler / bytecode / IL view
JDA 1.0.0
Build 14
Finally, the first full release of JDA. This version includes MapleIR integration--a big step towards the advanced analysis I had promised. Check it out under by selecting the MapleIR or MapleIL decompilers under.
To install the plugin, place it in the directory %USERPROFILE%\.jda\plugins
on Windows and ~/.jda/plugins
on Linux.
Internal
- Refactor several internal APIs for better consistency, especially for background tasks.
- Updated fernflower.
- Refactored plugin API.
- Moved to Maven.
- Migrated to the MapleIR modasm fork of ObjectWeb ASM.
Decompilation
- Bytecode disassembly now fully prints
invokedynamic
instructions' arguments and annotates them if they aremetafactory
.
UI
- Reloading resources now works properly, and existing windows are refreshed to reflect any filesystem changes.
JDA 0.0.8b
Build 13
Time flies! This build commemorates the 2nd anniversary of JDA.
Internal
- Refactor several internal APIs for better consistency, especially for background tasks.
- Updated fernflower.
Decompilation
- Bytecode disassembly now fully prints
invokedynamic
instructions' arguments and annotates them if they aremetafactory
.
UI
- Reloading resources now works properly, and existing windows are refreshed to reflect any filesystem changes.
More features are planned for version 0.0.8; however, the changes here justify a new build for convenience.
JDA 0.0.7 Beta
Build 11
Internal
The refactors made are a cornerstone for future work for features like xrefs.
- Forked RSyntaxTextArea.
- Renamed main package
Decompilation
- Labels in the bytecode disassembly are now interactive and you can click on them to navigate to their declarations.
- Customized lexing for bytecode.
UI
- Disabled option to not add brackets to labels.
JDA 0.0.7
Build 12
Internal
The refactors made are a cornerstone for future work for features like xrefs.
- Forked RSyntaxTextArea.
- Renamed main package.
- Rewrote a large portion of the file handling.
Decompilation
- Labels in the bytecode disassembly are now interactive and you can click on them to navigate to their declarations.
- Customized lexing for bytecode.
UI
- Changed use model for file tree. Adding folders now just adds individual files to the trees. File containers now use absolute names. This fixes a number of edge cases relating to file containers.
- Disabled option to not add brackets to labels.
- Disabled update check option.
JDA 0.0.6 Beta
Build #10
- Whole slew of internal changes, especially for settings
- Drop all manual dependencies to Maven except CFR
Decompilation
- Add handler block labels for bytecode decompiler (very useful)
- Totally refactor decompilation settings
- Update options for each wrapper
- Update to CFR 0.121
- Fix for multiply-nested classes in Fernflower (for example, nested classes in nested classes)
UI
- New dialogs for decompiler settings
- Minor QoL changes
JDA 0.0.5 Beta
Build #9
Decompilation
- Internal refactors and minor fixes
- Fix for Fernflower inner classes
- Minor bugfixes for file loading such as support for individual classfiles
UI
- Font settings (try them under View/Font)
- Add context menu to file tree
- Case-sensitive searching
Plugin API
- Basic plugin API