I am currently trying to de-obfuscate a Java program (i.e. find each class name and namespace, each method name and each method parameter name). To do so, I started by using Enigma (the fork from FabricMC).

But I have access to old sources that are not obfuscated and I was wondering if I could automatically de-obfuscate the part of my Java program that did not change since then.

Basically, I have:

  • Version 3 that is non-obfuscated.
  • Version 6 that is obfuscated.
  • Version 7 that is obfuscated.
  • Version 9 that is obfuscated.

and I want to de-obfuscate automatically as much symbols as possible in Version 9.

Are you aware of any tool that can do this? Currently, I am navigating the unobfuscated files of Version 3 by hand and mapping Version 9 on Enigma by hand too, which is quite a long and tedious process.

Note: all the subjects I found during my research were about de-obfuscating without access to any prior, non-obfuscated, sources. I would like to extract the maximum I can from the non-obfuscated sources I obtained.


1 Answer 1


Have you tried https://github.com/FabricMC/Matcher?
It doesn't always create the best matches automatically but it helps a lot by suggesting classes/methods/fields that are similar to each other across the different versions.

  • I do not know how I missed this tool, but it nicely answer my question! It lacks documentation though, but the community is super nice and very reactive on the FabricMC Discord! Oct 22, 2022 at 16:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.