Skip to content

Releases: LLVM-but-worse/java-disassembler

JDA 1.2.0

17 Jul 07:55
@rcx rcx
Compare
Choose a tag to compare

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

09 Jun 03:45
@rcx rcx
Compare
Choose a tag to compare

Minor updates and bug fixes.

Internal

  • Moved from ASM 5 to ASM 7 so newer classfiles are supported.
  • Updated Fernflower

MapleIR

  • Inline JSRs before processing methods
  • Updated to ASM7
  • Several bugfixes

UI

  • Several bug fixes

JDA 1.1.0 (+hotfix)

10 Sep 21:04
@rcx rcx
Compare
Choose a tag to compare
JDA 1.1.0 (+hotfix) Pre-release
Pre-release

Contains a hotfix for Java 10 JREs. The xref window is also searchable in this version.

JDA 1.1.0

28 Aug 05:20
@rcx rcx
Compare
Choose a tag to compare
JDA 1.1.0 Pre-release
Pre-release

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

31 May 07:55
@rcx rcx
Compare
Choose a tag to compare

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 are metafactory.

UI

  • Reloading resources now works properly, and existing windows are refreshed to reflect any filesystem changes.

JDA 0.0.8b

30 May 09:32
@rcx rcx
Compare
Choose a tag to compare
JDA 0.0.8b Pre-release
Pre-release

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 are metafactory.

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

14 May 08:22
@rcx rcx
Compare
Choose a tag to compare

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

19 Nov 00:14
@rcx rcx
Compare
Choose a tag to compare

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

13 May 05:31
@rcx rcx
Compare
Choose a tag to compare

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

30 Apr 04:12
@rcx rcx
Compare
Choose a tag to compare
JDA 0.0.5 Beta Pre-release
Pre-release

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