Skip to content

Releases: judovana/java-runtime-decompiler

java-runtime-decompiler-9.1.1

19 Feb 17:16
Compare
Choose a tag to compare

What's Changed

  • Refactor comment and script execute flags by @mkoncek in #262
  • Modules and theirs loaders are now shown in detailed info by @judovana in #263
  • updated to future classpath-less-compiler which fixed --patch-module

Full Changelog: java-runtime-decompiler-9.1...java-runtime-decompiler-9.1.1

java-runtime-decompiler-9.1

15 Dec 08:41
Compare
Choose a tag to compare

Fixed bug when complex classlaoder ID could not e compiled to regex, and thus failed its recognition. Now the matching is optional behind equals

java-runtime-decompiler-9.0

24 Nov 09:15
Compare
Choose a tag to compare

different classes with same FQN - with different classloader are now distinguished

What was intended as small update to 8.1, have evolved to pretty major rework.

  • jrd now can list classlaoders
  • can filter classes by classlaoder
  • can target - for decompilation/compilation/upload FQN from exact classlaoder
  • gui now always (transparently) honour classlaoder

This release may be a bit buggy:

  • There were spotted cases, when two processes were accessing - sequentially - the same agent, the communication broken for both of them, and new agnet have to be injected
  • when two JRD agents affected the same class, sometimes the changes disappeared, or - more interesting - tha class got broken and was discarded by JVM.

I guess both issues have same cause, but culprit was not yet found.

java-runtime-decompiler-8.0

13 Oct 15:42
Compare
Choose a tag to compare

Byteman IDE

Although byteman "code completion" was introduced in https://github.com/pmikova/java-runtime-decompiler/releases/tag/java-runtime-decompiler-7.3 byteman support and "IDE" was finihsed now:

  • JRD can now submit byteman agent
  • JRD can submit/list/unload and investigate byteman rules
    • byteman agent can be (from gui) injected only to VM, where JRD agent already is
    • after byteman agent is injected, second JRD agent is injected and connected
      • so you can see the differences (if any)
      • you are asked about this every time, but you can preselect defautl answer in settings
  • byteman and/or second agent can be handled manually, and jsut connected from JRD
  • one clisk typecheck/inject supports byteman scripts
    • the terrible overwrite dialogue support all byteman actions
  • updated to newst asmtools 8.0-b09
  • JRD agent now by default allowes itself only once in memory, and suggest reusing. However, you can make manual attach (was in CLI before) and inject another one if you know what you do (now also in gui)
  • default agent from gui is now pernament
  • remote VMS now can be saved simialrly as FS vms
  • GUI is now albel to change skin via config
  • this is solving terrible open/save file dialog on some platforms
  • due to byteman connection presented in config, the existing agents can not be properly loaded
    • be sure you have none before udpating
  • fixed bug in removinf FS and remote vms
  • settings are now more readable and compact
  • main window title now always show current vm and class
  • remote and local vms can manually connect to remote byteman agent

java-runtime-decompiler-7.3

29 Jun 19:59
Compare
Choose a tag to compare

The java assembly IDE

  • overwrite class dialog now upload new classes (in binary form) to running jvm
  • standalonen editor (and thus also embedded text editor) heavily improved
    • codecompeltion for
      • byteman
      • java
      • jasm
      • jrd's api
  • codecompeltion with heavy keyword documentation
  • possibility to mix the completions
  • one click (standalone compilation)
    • by in memory javac
    • by jasm7
    • by jasm8
    • byteman script check
  • one click (standalone compilation)
    • with no classpath
    • with selected running vm classpath
    • with self configured static cp
  • one click standalone compile+run
    • same classpath handling as for compilation
    • selection of method to run
    • by defualt start() easily to set up to eg main [Ljava.lang.String;
  • Output of compilation can be
    • run
    • saved
    • added to running vm
      • both normal and boot classloader supported
  • completion autodetection
  • all logs to embedded highlighting console
  • support for compilation of several files in once
  • quickstart jasm, java and byteman templates
  • fixed bug in cfr wrapper (it was unable to decomple for additional cp)
  • fixed bug in classpath less compiler (it was unable to compile new class)
  • known bug ba4f374ecd76a0e8b79e620ce8a4ec074cf9cbce; was fixed a bit after release and releaseblobs amended

java-runtime-decompiler-7.2

18 Mar 19:48
Compare
Choose a tag to compare

Fixed bug in procyon wrappers, where was missing beust jcommander. That was usually no issue in portable release, but was not exactly working in rebuild and repacked varaints

For release notes of 7.x see https://github.com/pmikova/java-runtime-decompiler/releases/tag/java-runtime-decompiler-7.1

java-runtime-decompiler-7.1

07 Feb 13:06
Compare
Choose a tag to compare
  • after months of tuning, finally added latest asmtool8 which should be without known bugs
  • currently there is no windows JRD developer, although we try, .bat may be broken

JVMs notes

  • JRD itself, launches properly only with jdk 11 and up (although built with source/target 8)
  • JRD can still manipulate bytcode of jdk 8-21 (but you must know what you are doing)
  • jasm7/jcoder7 works for JRD run in jdk11 and older, can manipulate both older and newer (then jdk11) bytecode, however can not operate with lambdas
  • asmtools8 - jasm/jcod works for JRD run in jdk16 and newer, can manipulate both older and newer (then jdk16) bytecode, and haw all issues, including the lambdas hopefully fixed

Future work

  • JRD 7 is now completed
  • asmtools7 and jdk8 support may be removed
  • in future, the standalone text/hex editors will be enhanced to work as full jasm/jcoder and byteman IDEs.
  • byteman agent support will be done
  • work with more flexible agent is planned to be finsihed also for gui (is useless now, but will be necessary for proper byteman support)
  • junit extension

JRD 7 summ up:

  • adding of new classes to the running jvm
  • applying both src and binary patches to running VM
  • compilation now honours bytecode level properly (can be forced though)
  • asmtools8
  • to workaround flaws in decompilers, added additional source path (and class path) to add proepr soources if needed
  • added diffing abilities (and patch generation/aplply)
  • both hexeditor and texteditor now can be used for ntoes, or even as standalone application
  • manual operations above agent (both cli and gui) now possible
  • agents are sahred proeprly
  • bumped procyon to lates and added procyon assembelr (read only, like javap)
  • and much more.. check the 7.0snapshot releases for details

7.0-snapshot.9

11 Nov 16:40
Compare
Choose a tag to compare
  • minor tweeks to compile console
    • added search, unified view...
  • added forgotten hex/editor launcher
  • standalone texteditor can now change syntax highlighter (consequence of all above)

7.0-snapshot.8

10 Nov 10:02
Compare
Choose a tag to compare
  • Fixed bug when remote vms were not shown
  • minor fixes to opening the standalone editors
  • gui now can load patch from fs

7.0-snapshot.7

09 Nov 17:54
Compare
Choose a tag to compare
  • new class can be now added to remote jvm
  • patches can now be applied via cli - both on source or binary, both and are adding new classes
    • compilation is done against corresponding bytecode levels, unless the option is turned off in config
    • it is possible to use both decompiled/disassembled files or source path
    • patched files can besaved for debugging purposes
  • all cli binary operations can now be printed/written in "human readable" hex
  • it is now possible to search for strings in running vm. Still it is very slow and moreover useless
  • used config file can now be printed out
  • patches are properly generated with fqn in header
  • all compile operations now honours global config
  • bumped procyon implementation
  • hex editors now can trasnfer hex via intenral byte[] clipboard-like buffer
  • hexditor and text editor can now be used as standalone applciation, or as separate notes window