Enigma is a Java application that allows you to browse decompiled Java sources from a Jar file. The source browser highlights the obfuscated class/field/method/argument names and allows easy renaming. All the mappings are saved internally to an efficient data structure which can be saved/loaded. Enigma also includes many code browsing features such as declaration lookup, call graph searches, and inheritance hierarchy browsing. Enigma even allows you to convert mappings between different versions of the Jar file using an intelligent matching system.

Development status

Enigma is currently Retired.

No further development will happen.

Enigma mappings for Minecraft

Enigma is currently being used to deobfuscate the Minecraft v1.8.3 client.

These mappings are being collected and managed using an Open Source philosophy on BitBucket. All of the mappings are freely available under a premissive Creative Commons license. You can you use these mappings for any purpose without asking permission, but please abide by the terms of the Minecraft EULA. Let's stay white-hat here, folks.

Download the mappings

Each version of the mappings lives in its own branch. To download the mappings for a certain version of Minecraft, navigate to that branch on BitBucket and then download the .mappings file.

Contributing to the mappings

We manage the mappings file using the Mercurial repository on BitBucket and anyone is welcome to contribute. I tried to find a way to make the repo writable by anyone, but there doesn't seem to be an option for that on BitBucket. I suppose that could be a security issue. If you want to push to the repo, just send me a request with your BitBucket account name, and I'll give you write access. The goal is to let anyone contribute mappings if they want to.

Before you start a deobfuscating session, make sure you've pulled the latest mappings from the repo. When you're done, merge/push your changes back to the repo. The file format I've chosen for the mappings is a human-readable line-by-line text format, so hopefully Mercurial will be a useful tool for synchronizing the mappings. We'll see how this works. =)

A word of caution: keep each commit short and don't spend too long working on it. If you build up your commit over several days, it is likely that other contributors will have made commits during that time. When you're ready to push your changes, you may find it difficult to deal with the resulting merge conflicts.

Community

Leave comments and join the discussion in the Minecraft-osphere.

Enigma is Open Source on

Enigma is powered by the exceptional Procyon Java decompiler which is also open source.