Minecraft Mods

Enigma: Minecraft deobfuscation tool

  • 11,355 views, 3 today
  • 654 downloads, 0 today
  • 18
  • 13
  • 38
cuchaz's Avatar cuchaz
Level 77 : Legendary Modder
234
I created a tool called Enigma that helps you deal with the pesky obfuscation that is the bane of all Minecraft core modders. Minecraft classes are always obfuscated, meaning they all have gibberish names. Enigma helps more advanced modders, who want to make changes to the Minecraft classes directly, give these classes (and fields, methods, etc) more meaningful names.

Enigma is very similar to MCP, which you may have heard of. Sadly, using the deobfuscation mappings from the MCP project without explicit written permission (from people who are very hard to communicate with =P) is against the terms of their license. That basically means if you wanted to do something crazy, like write your own mod loader, you're not allowed to use MCP unless they say it's ok.

Enigma is different. Not only is Enigma completely open source, but the current mappings for Minecraft 1.8.3 are released under a very permissive Creative Commons license. It basically means you can use the Enigma mappings in whatever project you like without having to ask first. Just abide by the terms of the Minecraft EULA, and you should be fine.

Enigma has a lot of whiz-bang features like:
  • convenient source code browser using on-the-fly decompilation
  • full source code nagivation and cross-referencing of identifiers
  • allows quick renaming of any class, field, method, and even method argument
  • automatic detection of inner/anonymous classes (not 100% perfect though...)
  • export to deobfuscated jar feature
  • export to source folder feature (source doesn't always compile though, it's not 100% perfect either)
I should also mention that the primary goal of Enigma is to be a tool that lets you rename obfuscated things. It's basically a library for mod loaders that want to have a stable way to refer to Minecraft classes. Getting Enigma to decompile obfuscated classes into source code that actually compiles into a working program isn't necessary to get a mod loader working, so it's not really a goal for this project. If you want to directly edit the source code of Minecraft, MCP is still your best bet.

Building the Minecraft mappings is also an open source effort. If you'd like to contribute to the mappings, read more about the Enigma project on my website.


Progress85% complete
Game VersionMinecraft 1.8
Tags

2 Update Logs

Update to v0.10 beta : by cuchaz 03/18/2015 10:31:01 pmMar 18th, 2015

adds support for new features in the Minecraft 1.8.3 jar!
  • reading (but not editing) of local variable names
  • parsing/translation of classes in generic type signatures
  • fixes lots of issues with inner classes
LOAD MORE LOGS

Create an account or sign in to comment.

1
12/13/2016 4:54 pm
Level 41 : Master Dragonborn
dreadend
dreadend's Avatar
This is neat!

I've been looking for something like this, I'm currently still working in 1.2.5 for a difficult implementation which I want to port into later versions. This will certainly come in handy.




Might also help me port my 1.2.5 plugins over to recent versions of MC.
1
06/22/2015 11:48 pm
Level 34 : Artisan Creeper Hugger
QuickWhitt7
QuickWhitt7's Avatar
This is a beautiful work of art made entirely in Java. This is incredible. Love this.
1
06/23/2015 11:39 am
Level 77 : Legendary Modder
cuchaz
cuchaz's Avatar
=D thanks!
1
05/15/2015 10:33 am
Level 45 : Master Blob
Gegy
Gegy's Avatar
Could you maybe add an auto-mapping feature that makes a mapping file with names like Class0, Class1 so that you can get it into a workspace and then find what each class is.
1
05/15/2015 10:43 am
Level 77 : Legendary Modder
cuchaz
cuchaz's Avatar
Exporting source files that are useful isn't really the point of Enigma. The point is just to rename classes/fields/methods/etc directly in the bytecode.
1
05/15/2015 10:58 am
Level 45 : Master Blob
Gegy
Gegy's Avatar
Okay, I also have gotten a weird error when exporting my source files (not Minecraft sources) http://pastebin.com/8MrMZRhz
1
05/16/2015 9:58 am
Level 77 : Legendary Modder
cuchaz
cuchaz's Avatar
The decompiler esploded. The decompiler isn't my code, so there's not much I can do about it. The decompiler isn't perfect.
1
04/12/2015 12:28 pm
Level 80 : Elite Modder
JavaBuckets
JavaBuckets's Avatar
Nice work! This is really neat, thanks a lot, again... for your great work ;)

- Thom, Head Developer and Leader of JavaBuckets
1
04/12/2015 3:22 pm
Level 77 : Legendary Modder
cuchaz
cuchaz's Avatar
=)
1
04/08/2015 9:46 pm
Level 13 : Journeyman Modder
aarondwillims
aarondwillims's Avatar
Aha, using Java eh?
I can't even make this with java! Wow!
Can you give me the src code of this please? I just wanna see how you did this..
Planet Minecraft

Website

© 2010 - 2024
www.planetminecraft.com

Welcome