0

I've used JD-Gui, Luyten and other couple of Java Decompilers but it's not working what is the problem in here? Thanks! It's A Mod (Minecraft) and I'm porting into different versions.

Code:

public class \ua6ad\ua6ad\ua6b3\ua6ae extends GuiScreen
{
    public ArrayList<\ua6ae\ua6b3\ua6b3\ua6ad> \ua6b2\ua6ad\ua6ae\ua6b0;
    public static final boolean \u2006\u2009\u2003\u2003\u2009\u2003\u200c;
    
    public \ua6ad\ua6ad\ua6b3\ua6ae() {
        final boolean \u2006\u2009\u2003\u2003\u2009\u2003\u200c = \ua6ad\ua6ad\ua6b3\ua6ae.\u2006\u2009\u2003\u2003\u2009\u2003\u200c;
        if (!\u2006\u2009\u2003\u2003\u2009\u2003\u200c && !\u2006\u2009\u2003\u2003\u2009\u2003\u200c) {
            this.\ua6b2\ua6ad\ua6ae\ua6b0 = new ArrayList<\ua6ae\ua6b3\ua6b3\ua6ad>();
            if (!\u2006\u2009\u2003\u2003\u2009\u2003\u200c && !\u2006\u2009\u2003\u2003\u2009\u2003\u200c) {
                int n = (int)((long)(-81003269) ^ (long)(-81003266));
                if (!\u2006\u2009\u2003\u2003\u2009\u2003\u200c && !\u2006\u2009\u2003\u2003\u2009\u2003\u200c) {
                    final \ua6af\ua6ae\ua6ad\ua6ad.Category[] \ua6af\ua6ae\ua6ad\ua6b3;
                    final int length = (\ua6af\ua6ae\ua6ad\ua6b3 = \ua6af\ua6ae\ua6ad\ua6ad.Category.\ua6af\ua6ae\ua6ad\ua6b3()).length;
                    if (!\u2006\u2009\u2003\u2003\u2009\u2003\u200c && !\u2006\u2009\u2003\u2003\u2009\u2003\u200c) {
                        int n2 = (int)((long)(-163476696) ^ (long)(-163476696));
                        if (!\u2006\u2009\u2003\u2003\u2009\u2003\u200c) {
                            while (!\u2006\u2009\u2003\u2003\u2009\u2003\u200c) {
                                if (n2 < length && !\u2006\u2009\u2003\u2003\u2009\u2003\u200c) {
                                    if (\u2006\u2009\u2003\u2003\u2009\u2003\u200c || \u2006\u2009\u2003\u2003\u2009\u2003\u200c) {
                                        break;
                                    }
                                    final \ua6af\ua6ae\ua6ad\ua6ad.Category category = \ua6af\ua6ae\ua6ad\ua6b3[n2];
                                    if (\u2006\u2009\u2003\u2003\u2009\u2003\u200c || \u2006\u2009\u2003\u2003\u2009\u2003\u200c) {
                                        break;
                                    }
                                    final \ua6ae\ua6b3\ua6b3\ua6ad \ua6ae\ua6b3\ua6b3\ua6ad = new \ua6ae\ua6b3\ua6b3\ua6ad(category);
                                    if (\u2006\u2009\u2003\u2003\u2009\u2003\u200c || \u2006\u2009\u2003\u2003\u2009\u2003\u200c) {
                                        break;
                                    }
                                    \ua6ae\ua6b3\ua6b3\ua6ad.\ua6ae\ua6b1\ua6b1\ua6ae(n);
                                    if (\u2006\u2009\u2003\u2003\u2009\u2003\u200c || \u2006\u2009\u2003\u2003\u2009\u2003\u200c) {
                                        break;
                                    }
                                    this.\ua6b2\ua6ad\ua6ae\ua6b0.add(\ua6ae\ua6b3\ua6b3\ua6ad);
                                    if (\u2006\u2009\u2003\u2003\u2009\u2003\u200c || \u2006\u2009\u2003\u2003\u2009\u2003\u200c) {
                                        break;
                                    }
                                    n += \ua6ae\ua6b3\ua6b3\ua6ad.\ua6b1\ua6b0\ua6ae\ua6b1() + (int)((long)1900478814 ^ (long)1900478815);
                                    if (\u2006\u2009\u2003\u2003\u2009\u2003\u200c || \u2006\u2009\u2003\u2003\u2009\u2003\u200c) {
                                        break;
                                    }
                                    ++n2;
                                    if (\u2006\u2009\u2003\u2003\u2009\u2003\u200c) {
                                        break;
                                    }
                                    if (\u2006\u2009\u2003\u2003\u2009\u2003\u200c) {
                                        throw null;
                                    }
                                    continue;
                                }
                                else {
                                    if (!\u2006\u2009\u2003\u2003\u2009\u2003\u200c) {
                                        return;
                                    }
                                    break;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
4
  • Most of the identifiers have been obfuscated to unicode. Use grep to filter out all unicodes and map them to english characters, but it will still be nonsense. Here is a link stackoverflow.com/questions/65475/… which shows how its valid.
    – Avezan
    Mar 26, 2021 at 18:04
  • Grep? You can run the jar back through another obfuscator with just class/field/method renaming enabled like Proguard to get less awful names. A bunch of random lower case letters is better than unicode escapes.
    – Col-E
    Mar 27, 2021 at 1:19
  • Hello! Thank you for sharing. So using grep will find patterns in that code ? is it really work?
    – PoppyDude
    Mar 27, 2021 at 9:57
  • That are a .NET class obfuscated with ConfuserEx, you can find many website that explain how deobfuscate this code. Here a video youtube.com/watch?v=LlbSE4lzX-M&ab_channel=AhmedMahmoud
    – incode
    Mar 27, 2021 at 23:47

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.