/lorenz

A representation of JVM deobfuscation mappings for Java. Now with tiny mappings and Javadoc support.

Primary LanguageJavaOtherNOASSERTION

Lorenz

Lorenz is a library intended for creating and altering de-obfuscation mappings for Java programs (compiled or otherwise), this is done independent of the format being used. Lorenz supports a variety of mapping formats:

  • SRG and its variants (CSRG, TSRG, and XSRG)
  • Enigma (through lorenz-io-enigma)
  • JAM (through lorenz-io-jam)
  • Tiny V1 & V2 (through lorenz-io-tiny)
  • ProGuard (reader only through lorenz-io-proguard)

Branches

Lorenz makes use of the git-flow branching structure, briefly put:

  • master is the source for the latest released version
  • develop is the source of the latest developments

All releases will also be tagged, with further descriptions in their GitHub release. These descriptions will include information such as migration advice.

Usage

Lorenz is centred around the MappingSet, the root container of mappings. A provided implementation can be constructed through MappingSet.create().

Lorenz releases can be obtained through Maven Central:

Gradle

implementation 'org.cadixdev:lorenz:0.5.7'

Maven

<dependency>
    <groupId>org.cadixdev</groupId>
    <artifactId>lorenz</artifactId>
    <version>0.5.7</version>
</dependency>

You may also find snapshot artifacts on Sonatype's OSS repository.

Versions prior to 0.5.0 were made under the me.jamiemansfield group, and initial snapshot releases were made to my personal Maven (repo.jamiemansfield.me).

License

Lorenz is licensed under the MIT License, this was chosen for its permissive nature - giving developers the freedom to do as they please with it, with no assurances from myself.

The MIT License (MIT)

Copyright (c) Jamie Mansfield <https://www.jamierocks.uk/>, Bleach <https://bleach.dev/> and contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

Discuss

Found an issue with Lorenz? Make an issue! We'd rather close invalid reports than have bugs go unreported :)

We have an IRC channel on EsperNet, #cadix, which is available for all registered users to join and discuss Lorenz and other Cadix projects.