GithubHelp home page GithubHelp logo

obfuscator's Introduction

Obfuscator Build Status Join the chat at https://gitter.im/superblaubeere27/obfuscator Donate

If you are interested in stronger obfuscation methods, feel free to take a look at my new project masxinlingvonta that further obfuscates java bytecode by compiling it to native code.

A Java bytecode obfuscator supporting

  • Flow Obfuscation
  • Line Number Removal
  • Number Obfuscation
  • [Unstable] Name Obfuscation (Classes, methods and fields) with custom dictionaries
  • Deobfuscator crasher
  • String Encryption
  • Inner Class Removal
  • HWID Locking
  • Invoke Dynamic
  • Reference Proxy
  • Member Shuffling & Hiding

Feel free to join my discord server: Discord Chat

Obfuscated code

Luyten + Procyon

Without

public class HelloWorld {
    public HelloWorld() {
        super();
    }
    
    public static void main(final String[] args) {
        System.out.println("Hello World");
        for (int i = 0; i < 10; ++i) {
            System.out.println(i);
        }
    }
}

Obfuscated (short version for full code visit https://pastebin.com/RFHtgPtX)

public class HelloWorld {
    
    public static void main(final String[] array) {
        // invokedynamic(1:(Ljava/io/PrintStream;Ljava/lang/String;)V, invokedynamic(0:()Ljava/io/PrintStream;), HelloWorld.llII[HelloWorld.lllI[0]])
        float lllllllIlIllIII = HelloWorld.lllI[0];
        while (llIll((int)lllllllIlIllIII, HelloWorld.lllI[1])) {
            // invokedynamic(2:(Ljava/io/PrintStream;I)V, invokedynamic(0:()Ljava/io/PrintStream;), lllllllIlIllIII)
            ++lllllllIlIllIII;
            "".length();
            if (" ".length() == (" ".length() << ("   ".length() << " ".length()) & ~(" ".length() << ("   ".length() << " ".length())))) {
                throw null;
            }
        }
    }
    
}

Usage

--help Prints the help page on the screen

--version Shows the version of the obfuscator

--jarIn <input> Input JAR

--jarOut <output> Output JAR

--config <configFile> Config File

--cp <classPath> Class Path

--scriptFile <scriptFile> A JS file to script certain parts of the obfuscation

--threads Sets the number of threads the obfuscator should use

--verbose Sets logging to verbose mode

Examples

java -jar obfuscator.jar --jarIn helloWorld.jar --jarOut helloWorld-obf.jar

java -jar obfuscator.jar --jarIn helloWorld.jar --jarOut helloWorld-obf.jar --config obfConfig

Example Config

{
  "input": "D:\\Computing\\HelloWorld\\out\\artifacts\\HelloWorld_jar\\HelloWorld.jar",
  "output": "D:\\Computing\\HelloWorld\\out\\artifacts\\HelloWorld_jar\\HelloWorld-obf.jar",
  "script": "function isRemappingEnabledForClass(node) {\n    return true;\n}\nfunction isObfuscatorEnabledForClass(node) {\n    return true;\n}",
  "libraries": [
    "C:\\Program Files\\Java\\jre1.8.0_211\\lib",
    "D:\\Computing\\backdoored_old\\dependencies",
    "D:\\Computing\\backdoored\\libs"
  ],
  "Crasher": {
    "Enabled": false,
    "Invalid Signatures": true,
    "Empty annotation spam": true
  },
  "InvokeDynamic": {
    "Enabled": true
  },
  "HWIDPRotection": {
    "Enabled": false,
    "HWID": ""
  },
  "Optimizer": {
    "Enabled": true,
    "Replace String.equals()": true,
    "Replace String.equalsIgnoreCase()": true,
    "Optimize static string calls": true
  },
  "LineNumberRemover": {
    "Enabled": true,
    "Rename local variables": true,
    "Remove Line Numbers": true,
    "Remove Debug Names": true,
    "Add Local Variables": true,
    "New SourceFile Name": ""
  },
  "StringEncryption": {
    "Enabled": true,
    "HideStrings": true,
    "AES": true
  },
  "NumberObfuscation": {
    "Enabled": true,
    "Extract to Array": true,
    "Obfuscate Zero": true,
    "Shift": false,
    "And": false,
    "Multiple Instructions": true
  },
  "ReferenceProxy": {
    "Enabled": false
  },
  "ShuffleMembers": {
    "Enabled": true
  },
  "InnerClassRemover": {
    "Enabled": true,
    "Remap": true,
    "Remove Metadata": true
  },
  "NameObfuscation": {
    "Enabled": true,
    "Excluded classes": "HelloWorld",
    "Excluded methods": "",
    "Excluded fields": ""
  },
  "General Settings": {
    "Custom dictionary": true,
    "Name dictionary": "hello,world"
  },
  "Packager": {
    "Enabled": false,
    "Use MainClass from the JAR manifest": true,
    "Main class": "HelloWorld"
  },
  "FlowObfuscator": {
    "Enabled": true,
    "Mangle Comparisons": true,
    "Replace GOTO": true,
    "Replace If": true,
    "Bad POP": true,
    "Bad Concat": true,
    "Mangle Switches": false,
    "Mangle Return": false,
    "Mangle Local Variables": false
  },
  "HideMembers": {
    "Enabled": true
  },
  "Inlining": {
    "Enabled": false
  }
}

Excluding Classes

In some situations you need to prevent certain classes from being obfuscated, such as dependencies packaged with your jar or mixins in a forge mod.

You will need to exclude in two places.

Scripting Tab

Here is an example script that will obfuscate and remap all classes except the org.json dependency and mixins.

function isRemappingEnabledForClass(node) {
    var flag1 = !node.name.startsWith("org/json");
    var flag2 = !node.name.startsWith("com/client/mixin");
    return flag1 && flag2;
}
function isObfuscatorEnabledForClass(node) {
    var flag1 = !node.name.startsWith("org/json");
    var flag2 = !node.name.startsWith("com/client/mixin");
    return flag1 && flag2;
}
Name Obfuscation

If you also want to exclude these classes from name obfuscation you will need to go to Transformers -> Name Obfuscation and add these exclusions there.

To Exclude the same classes as we did above, we would need to add the following to Excluded classes, methods and fields.

org.json.**
com.client.mixin.**

If your classes are still being obfuscated after applyinng both of these exclusions please open an issue.

Contributing

1. Fork the repository
  • Click the "Fork" button at the top right hand corner of this page
  • Then run git clone https://github.com/[your github username]/obfuscator.git
2. Import into IntelliJ
  • File -> New -> Project From Existing Sources
  • Select C:\[Path To]\obfuscator\pom.xml
  • Set "Search for projects recursively" and "Import Maven projects automatically" to true and click next
  • Make sure all maven projects are ticked
  • Select the correct Java SDK and go with all the default options for the next pages
3. Editing
  • Make any edits
  • Package the project to make sure that the project is still functional:
    • java -Dmaven.multiModuleProjectDirectory=D:\Computing\obfuscator\obfuscator-core "-Dmaven.home=C:\Program Files\JetBrains\IntelliJ IDEA 2019.1.3\plugins\maven\lib\maven3" "-Dclassworlds.conf=C:\Program Files\JetBrains\IntelliJ IDEA 2019.1.3\plugins\maven\lib\maven3\bin\m2.conf" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2019.1.3\lib\idea_rt.jar=18889:C:\Program Files\JetBrains\IntelliJ IDEA 2019.1.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA 2019.1.3\plugins\maven\lib\maven3\boot\plexus-classworlds-2.5.2.jar" org.codehaus.classworlds.Launcher -Didea.version2019.1.3 package (Change any paths to be relevant to your system)
3. Commit
  • Run git status to see which files you've changed
  • Run git add [file name] for each of the files you want to submit your changes to
  • Do git commit -m "[A description of the changes]"
  • And finally git push to upload your changes to GitHub
4. Pull Request
  • Go to https://github.com/[your github username]/obfuscator and click "Pull Requests" and then "New Pull Request"
  • Make sure all your changes are included then submit the Pull Request.

Credits

  • MCInjector (FFixer base)
  • FFixer (Obfuscator base)
  • SmokeObfuscator (Some ideas)
  • MarcoMC (Some ideas)
  • ItzSomebody (NameUtils.crazyString(), Crasher)

obfuscator's People

Contributors

crowar avatar dependabot[bot] avatar fishermans avatar gitter-badger avatar mtorres10 avatar superblaubeere27 avatar sweidenbach avatar x4e avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

obfuscator's Issues

I can't use the gui!

ERROR: Missing required option(s) [jarIn] (Tip: try --help and even if you specified a config you have to specify an input and output jar)
joptsimple.MissingRequiredOptionsException: Missing required option(s) [jarIn]
at joptsimple.OptionParser.ensureRequiredOptions(OptionParser.java:426)
at joptsimple.OptionParser.parse(OptionParser.java:400)
at me.superblaubeere27.jobf.JObf.main(JObf.java:117)
Starting in GUI Mode
Exception in thread "main" java.lang.NullPointerException
at java.io.FilterInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at me.superblaubeere27.jobf.utils.Templates.getResourceFiles(Templates.java:41)
at me.superblaubeere27.jobf.utils.Templates.loadTemplates(Templates.java:25)
at me.superblaubeere27.jobf.JObf.main(JObf.java:269)
Suppressed: java.lang.NullPointerException
at java.io.FilterInputStream.close(Unknown Source)
at sun.net.www.protocol.jar.JarURLConnection$JarURLInputStream.close(Unknown Source)
at sun.nio.cs.StreamDecoder.implClose(Unknown Source)
at sun.nio.cs.StreamDecoder.close(Unknown Source)
at java.io.InputStreamReader.close(Unknown Source)
at java.io.BufferedReader.close(Unknown Source)
at me.superblaubeere27.jobf.utils.Templates.getResourceFiles(Templates.java:44)
... 2 more
Suppressed: java.lang.NullPointerException
at java.io.FilterInputStream.close(Unknown Source)
at sun.net.www.protocol.jar.JarURLConnection$JarURLInputStream.close(Unknown Source)
at me.superblaubeere27.jobf.utils.Templates.getResourceFiles(Templates.java:44)
... 2 more

Packager Error

Hey obfuscating my jar works perfectly unless I use the packager. I was wondering if this was fixed because it says it was in 1.9 but still crashes on startup. I was also wondering is it possible to deobf this and get readable source?

Entity Identifier are missing after Obfuscate

getting below error while running jar due to entity identifiers/annotation are missing for Spring JPA project

Unsatisfied dependency expressed through field 'customUserDetailsService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'customUserDetailsService': Unsatisfied dependency expressed through field 'userRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository': Cannot create inner bean '(inner bean)#6c958565' of type [org.springframework.orm.jpa.SharedEntityManagerCreator] while setting bean property 'entityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#6c958565': Cannot resolve reference to bean 'entityManagerFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Cannot determine embedded database url for database type NONE. If you want an embedded database please put a supported one on the classpath. If you have database settings to be loaded from a particular profile you may need to active it (the profiles "DEV" are currently active).

Idea

Hi, please add ignore string encryption on the certain string name. Thanks

(Error) Expecting a stackmap frame

The output from running the obfuscated jar in CMD:

C:\Users\databoose\Desktop\java apps>java -jar compiled.jar
Exception in thread "main" java.lang.VerifyError: Expecting a stackmap frame at branch target 25
Exception Details:
  Location:
    PassGenerator$1.<init>()V @20: if_icmpge
  Reason:
    Expected stackmap frame at this location.
  Bytecode:
    0x0000000: 2ab7 0010 1212 b600 1857 121a b600 1812
    0x0000010: 1cb6 0018 a200 0501 bfb1

        at PassGenerator.main(PassGenerator.java:32)

My version of java :

C:\Users\databoose\Desktop\java apps>java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

Every option of flow obfuscator is enabled, everything else is disabled.

MethodTooLargeException

Hello,
during the process this error occurres:
org.objectweb.asm.MethodTooLargeException: Method too large: eu/software4you/minecraft/multiversion/UMaterial.<clinit> ()V at org.objectweb.asm.MethodWriter.computeMethodInfoSize(MethodWriter.java:2089) at org.objectweb.asm.ClassWriter.toByteArray(ClassWriter.java:458) at me.superblaubeere27.jobf.JObfImpl.lambda$processJar$6(JObfImpl.java:406) at java.lang.Thread.run(Unknown Source)
The class is not placed in the output jar.
As far as i know this error could be caused by Java itself.
A workaround would be if the obfuscator just ignores the class, but still puts it into the output jar.

MySQL connection problem

Bug Report

try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","");
Statement stmt = con.createStatement();
String sql ="Select * from tbLogin where Username ='"+textField.getText()+"'and Password = '"+passwordField.getText().toString()+"' ";
ResultSet rs = stmt.executeQuery(sql);

				if(rs.next()) {
					JOptionPane.showMessageDialog(null, "Login successful");
					llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllh.llllllllllllllllll();
					frame.dispose();
				}
				else 
					JOptionPane.showMessageDialog(null, "Login unsuccessful");
			}catch(Exception e) {
				
			}
		
			
		}

does not work when you encrypt the file

With GUI is working but with command give error

Hello dear
When i use obfuscator-gui is working good i build the same config to use it with command.
i use this command:
java -jar .\Obfuscator\obfuscator-193.jar --config .\Obfuscator\Conf.json --jarIn abc.jar --jarOut .\Temp\abc2.jar

but i have this error:

Loading classpath...
Reading input...
Building Hierarchy...
Finishing...

Processing completed. If you found a bug / if the output
pen an issue at https://github.com/superblaubeere27/obfuscat
ERROR: java/lang/Object is missing in the classPath.
me.superblaubeere27.jobf.utils.MissingClassException: java/l
g in the classPath.
at me.superblaubeere27.jobf.JObfImpl.buildHierarchy(
at me.superblaubeere27.jobf.processors.name.NameObfu
t(NameObfuscation.java:62)
at me.superblaubeere27.jobf.JObfImpl.processJar(JObf
at me.superblaubeere27.jobf.JObf.main(JObf.java:231)

Can you give help please.

referenceProxy

I test reference proxy , it's increase class size and generate two, three... same method, i write small class no need generate new method every time, just generate one time and use, can you add this?

// Test
        invoke(getDeclaredMethod("test.Main" /* Find Class */, "hello" /* Find Method */), "test.Main" /* Find Class */);
// Test 2nd
        invoke(getDeclaredMethod("test.Main" /* Find Class */, "hello" /* Find Method */, String.class /* Arguments Type */), "test.Main" /* Find Class */, "Hello World" /* Arguments */);

Full Code:
https://pastebin.com/NHPCfQQ3

Cannot Execute Program

I wanted to start the obfuscator, then this happened: (I did java -jar obfuscator.jar)

ERROR: Missing required option(s) [jarIn] (Tip: try --help and even if you specified a config you have to specify an input and output jar)
joptsimple.MissingRequiredOptionsException: Missing required option(s) [jarIn]
at joptsimple.OptionParser.ensureRequiredOptions(OptionParser.java:426)
at joptsimple.OptionParser.parse(OptionParser.java:400)
at me.superblaubeere27.jobf.JObf.main(JObf.java:117)
Starting in GUI Mode
No protocol specified
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:103)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:82)
at java.awt.Window.initGC(Window.java:475)
at java.awt.Window.init(Window.java:495)
at java.awt.Window.(Window.java:537)
at java.awt.Frame.(Frame.java:420)
at java.awt.Frame.(Frame.java:385)
at javax.swing.JFrame.(JFrame.java:189)
at me.superblaubeere27.jobf.ui.GUI.(GUI.java:80)
at me.superblaubeere27.jobf.JObf.main(JObf.java:273)

What should i do now?

Minecraft Main Class Name

I am keep trying to use packager on my Client but whenever i use it i crash. It might be because i am giving the wrong main class. I am using net.minecraft.client.main.Main as my Main class.

Support For Android APK

Please make this obfuscator in a way that it can be used to obfuscate apk at compile time in android studio like allatori doing . I found this obfuscator too good for jar files but now need such good protection for apk to . Hope you think on my request . Thanks

invokedynamic

invokedynamic instructions which return an array needed to be casted with checkcast opcode

Type type = Type.getReturnType(methodInsn.desc);
if (type.getSort() == Type.ARRAY) {
    insns.add(new TypeInsnNode(CHECKCAST, type.getInternalName()));
}

(Error) Expecting a stackmap, program does not run.

Here are the following options i have enabled:

Flow obfuscator :

Mangle switches : ✓

Mangle return : ✓

Replace GOTO : ✓

Replace If : ✓

Bad POP: ✓

Bad Concat: ✓

Every other option i have disabled completely, Here's the output:

C:\Users\databoose\Desktop\java apps>java -jar compiled.jar
Exception in thread "main" java.lang.VerifyError: Expecting a stackmap frame at branch target 25
Exception Details:
Location:
PassGenerator$1.<init>()V @20: if_icmpge
Reason:
Expected stackmap frame at this location.
Bytecode:
0x0000000: 2ab7 0010 1212 b600 1857 121a b600 1812
0x0000010: 1cb6 0018 a200 0501 bfb1
    at PassGenerator.main(PassGenerator.java:32)

Just incase this is needed, here is my installed java version:

C:\Users\databoose\Desktop\java apps>java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

Question

Does this work with forge mod?

Obfuscator is breaking my jar (it wasn't before - I think that's because of the plugin size)

Bug Report

Expected Behaviour

The plugin should work and not crash because of an error caused by the obfuscator.

Actual Behaviour

There's an error that is caused by the obfuscator.
https://pastebin.com/K7M62Rkd

How to reproduce the behaviour

Not sure how to replicate it, I am pretty sure it has to do with the file size tho (maybe I am wrong). Here is my configuration anyways:
https://pastebin.com/yXXdRRXS

Is not working with HTTPClient and JSON libraries

Bug Report

Is not working with HTTPClient and JSON libraries

Expected Behaviour

If HTTPClient library and JSON libraries are used shold work,

Actual Behaviour

If a POST action is send via HTTPClient or a JSON request is send is not responding.

How to reproduce the behaviour

HTTPClient:

 HttpClient client = HttpClientBuilder.create().build();
 HttpPost post = new HttpPost("https://www.test.com");

 // Create some NameValuePair for HttpPost parameters
 List < NameValuePair > arguments = new ArrayList < > (2);
 arguments.add(new BasicNameValuePair("record1", "test string1"); arguments.add(new BasicNameValuePair("record2", "test string2");

 try {
     post.setEntity(new UrlEncodedFormEntity(arguments));
     HttpResponse response = client.execute(post);
     String jsonResponse = EntityUtils.toString(response.getEntity());

     JSONArray jsonArray = new JSONArray(jsonResponse);

     for (int i = 0; i < jsonArray.length(); i++) {
         JSONObject jsonobject = jsonArray.getJSONObject(i);
         if (jsonobject.getString("valResponse").equals("1")) {
             system.out.print.ln("In");
         }
     }

 } catch (IOException e) {
     e.printStackTrace();

 } catch (JSONException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();

 }

Crasher - empty annotation spam

This will add a bunch of blank ("\n\n\n\n" spam) annotations to every method and class, which will let decompilers to endlessly load the jarfile

NameObfuscation access bug

Bug Report

Expected Behaviour

The Name Obfuscation would leave the methods' access of excluded classes untouched

Actual Behaviour

It changes everything to public

How to reproduce the behaviour

  • Try to obfuscate a jar with some excluded classes which contains private methods

Possible fix

Make a check if the class is not remapped

can't start

C:\Users\admin>java -jar C:\Users\admin\Desktop\obfuscator-1.71.jar
Exception in thread "main" java.lang.NullPointerException
at java.io.FilterInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at me.superblaubeere27.jobf.utils.Templates.getResourceFiles(Templates.java:33)
at me.superblaubeere27.jobf.utils.Templates.loadTemplates(Templates.java:17)
at me.superblaubeere27.jobf.JObf.main(JObf.java:79)
Suppressed: java.lang.NullPointerException
at java.io.FilterInputStream.close(Unknown Source)
at sun.net.www.protocol.jar.JarURLConnection$JarURLInputStream.close(Unknown Source)
at sun.nio.cs.StreamDecoder.implClose(Unknown Source)
at sun.nio.cs.StreamDecoder.close(Unknown Source)
at java.io.InputStreamReader.close(Unknown Source)
at java.io.BufferedReader.close(Unknown Source)
at me.superblaubeere27.jobf.utils.Templates.getResourceFiles(Templates.java:36)
... 2 more
Suppressed: java.lang.NullPointerException
at java.io.FilterInputStream.close(Unknown Source)
at sun.net.www.protocol.jar.JarURLConnection$JarURLInputStream.close(Unknown Source)
at me.superblaubeere27.jobf.utils.Templates.getResourceFiles(Templates.java:36)
... 2 more

Add Language Options

Feature Request

  • Describe the feature
  • Tell us why should add this feature

Let more users use it

Libraries are not displayed within a fixed height container

Bug Report

Expected Behaviour

I would expect that when you add libraries to the obfuscator they would be displayed within a fixed height container that can be scrolled to reveal others.

Actual Behaviour

Instead they keep filing up and pushing down the bottom of the screen, and worse not just on the input/output tab but also every other tab. This prevents me from saving the config which is of course an absolute pain as it means that I have to add all of the libraries each time. It also actually prevents me from even running the tool.

Some screenshots:
https://i.imgur.com/MPwdRcU.png
https://i.imgur.com/dHXlzuo.png

Possible fix

Make a fixed height container for the libraries and add a scroll bar.

You could also mitigate the tiring task of adding each library by allowing you to enter into a text box all of the required libraries seperated by a newline. That would be really helpful.

Thank you for this amazing tool by the way, it works really well with everything else!

Bridge access on methods

If you add bridge access to any method other than initialization methods Fernflower will not decompile them

Example:

int access = mv.access;
int bridge = Opcodes.ACC_BRIDGE;

if ((bridge & access) == 0) {
    access += bridge;
}

mv.access = access;

FlowObfuscator/Replace GOTO bug.

Bug Report

Behaviour

If there is a GOTO before a super() or this() it will be replaced and it will be added an (unreachable) return. The Bytecode Verifier detects this as an error.

How to reproduce the behaviour

    static class Foo {
        private int integer;

        Foo(int integer) {
            this.integer = integer;
        }
    }

    static class Bar extends Foo {
        Bar(boolean bool) {
            super(bool ? 1337 : 0);
        }
    }

The error will be in Bar.(Z)V

Possible fix

Don't use return in methods.

Obfuscator breaks jars without processors (Bad ASM?)

Bug Report

I was testing the obfuscator with some jars and it was breaking some of the classes without any processors on whatsoever. The jars would not play nice with other obfuscators or decompilers (because they were broke)

I not only disabled all processors, but I completely removed them from the code, I applied function isObfuscatorEnabledForClass(node) {
return false;
}
and everything, and it is still breaking jars.

How to reproduce the behaviour

I found that kilo best represents this bug, so here is a compiled version for you to test out.
Jar:
https://4lpha.one/dl/1CTswpE6WzAUkOheBKijWKTPK8PvRJmWk
Config:
https://pastebin.com/aWbqNRxQ

So you obf the jar and it should still work because nothing should've been changed, but this isn't the case. Try to obfuscate on top of Jobf with something like Radon or another obfuscator and you'll get multiple errors about failing to read/write classes; errors that weren't there on the unobf version. This only happens when jars are obfed with jobf, and since no processors are applied, I would assume it's a bug in your reading/writing part of the obfuscator. Please fix soon.

Classes you can compare pre and post

On radon it told me
WARNING: Could not load net/minecraft/command/common/CommandReplaceItem.class as a class
WARNING: Could not load jaco/mp3/player/MP3Player$1.class as a class

Class not found Error

Bug Report

Actual Behaviour

If I enable name obfuscation it gives me an error saying that Enum is not in the classpath I tried this with other jars too there it is the same

How to reproduce the behaviour

Toggle Name Obfuscation and obfuscate

Obf. ERROR

java.lang.IllegalArgumentException
at org.objectweb.asm.ClassReader.(ClassReader.java:185)
at org.objectweb.asm.ClassReader.(ClassReader.java:168)
at me.superblaubeere27.jobf.JObfImpl.processJar(JObfImpl.java:406)
at me.superblaubeere27.jobf.JObfImpl.processConsole(JObfImpl.java:98)
at me.superblaubeere27.jobf.JObf.main(JObf.java:141)
Processed Application.jar

Packager ignoring main class input

Bug Report

Expected Behaviour

Packager should work fine, however it doesn't because it ignores the attached main file/package

Actual Behaviour

Ignores the main file/package input in the Packager GUI section

How to reproduce the behaviour

Enabled Packager and put in a valid file/package name

Possible fix

I think you only forgot to pick it up from the JTextField

Help by use new version

Help by keys new version

Hello! I'm trying to use your new version of obfuscator.
There are a couple of questions.

  • The key --watermark - this is what we will replace the code, I understand correctly?

  • The --config key - where can I find an example of a configuration file for obfuscation?

Thank!

Eset Internet Security Detects Virus

Bug Report

Expected Behaviour

It should not add virus to my jar.

Actual Behaviour

It adds Java Kryptik.YO virus.

How to reproduce the behaviour

Make it this not to happen.
(To get the config open the obfuscator in GUI-Mode, goto Config, enable PrettyPrint and press Build)

Remapping breaks forge mods

Bug Report

Expected Behaviour

The obfuscator should be able to properly remap forge mods

Actual Behaviour

Applying remaps to the obfuscator causes a crash on compilation

How to reproduce the behaviour

Config:

{
  "input": "D:\\Computing\\backdoored\\backdoored-0.2.jar",
  "output": "D:\\Computing\\backdoored\\backdoored-0.1-out-hwid.jar",
  "script": "function isRemappingEnabledForClass(node)\n{\n\tflag0 \u003d !node.name.startsWith(\"com/backdoored/subguis\");\n\tflag1 \u003d !node.name.startsWith(\"com/backdoored/mixin\");\n\tflag2 \u003d !node.name.startsWith(\"com/backdoored/Backdoored\");\n\treturn flag0 \u0026\u0026 flag1 \u0026\u0026 flag2;\n}\n\nfunction isObfuscatorEnabledForClass(node)\n{\n\tflag0 \u003d !node.name.startsWith(\"com/backdoored/subguis\");\n\tflag1 \u003d !node.name.startsWith(\"com/backdoored/mixin\");\n\treturn flag0 \u0026\u0026 flag1;\n}",
  "libraries": [
    "C:\\Program Files\\Java\\jre1.8.0_211\\lib",
    "D:\\Computing\\backdoored\\libs\\java-discord-rpc-2.0.1-all.jar",
    "D:\\Computing\\backdoored\\dependencies"
  ],
  "Crasher": {
    "Enabled": false
  },
  "InvokeDynamic": {
    "Enabled": true
  },
  "HWIDPRotection": {
    "Enabled": false,
    "HWID": "4C30E4D7CE71714DD52CEB8DB80097CE"
  },
  "Optimizer": {
    "Enabled": true,
    "Replace String.equals()": false,
    "Replace String.equalsIgnoreCase()": false,
    "Optimize static string calls": true
  },
  "LineNumberRemover": {
    "Enabled": true,
    "Rename local variables": true,
    "Remove Line Numbers": true,
    "Remove Debug Names": true,
    "Add Local Variables": true,
    "New SourceFile Name": ""
  },
  "StringEncryption": {
    "Enabled": true,
    "HideStrings": true,
    "AES": false
  },
  "NumberObfuscation": {
    "Enabled": true,
    "Extract to Array": true,
    "Obfuscate Zero": true,
    "Shift": true,
    "And": true,
    "Multiple Instructions": true
  },
  "ReferenceProxy": {
    "Enabled": false
  },
  "ShuffleMembers": {
    "Enabled": true
  },
  "InnerClassRemover": {
    "Enabled": true,
    "Remap": false,
    "Remove Metadata": true
  },
  "NameObfuscation": {
    "Enabled": true
  },
  "Packager": {
    "Enabled": false,
    "Use MainClass from the JAR manifest": true,
    "Main class": "com/backdoored/Backdoored"
  },
  "FlowObfuscator": {
    "Enabled": true,
    "Mangle Comparisons": true,
    "Replace GOTO": true,
    "Replace If": true,
    "Bad POP": true,
    "Bad Concat": true,
    "Mangle Switches": false,
    "Mangle Return": false,
    "Mangle Local Variables": false
  },
  "HideMembers": {
    "Enabled": true
  },
  "Inlining": {
    "Enabled": false
  }
}

Dependency folder contains:
folder

Log:

Loading classpath...
Loading D:\Computing\backdoored\libs\java-discord-rpc-2.0.1-all.jar (0%)
Reading input...
Building Hierarchy...
Finished building hierarchy
Generating mappings...
Finished generating mappings (401ms)
Applying mappings...
Finished applying mappings (143ms)
... Finished after 618ms 
Transforming with 8 threads...
Field lIllIIIII.llIlIlIIlIl wasn't found. Please add it as library
Field lIIIllIIl.llIlIIlllll wasn't found. Please add it as library
Field lIIIllIIl.llIlIIlllll wasn't found. Please add it as library
Field lIIlIlIlI.llIlIlIIlIl wasn't found. Please add it as library
Field lIlIlIIII.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/multiplayer/WorldClient.field_147482_g wasn't found. Please add it as library
Field lIlIlIIII.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70165_t wasn't found. Please add it as library
Field lIlIlIIII.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70163_u wasn't found. Please add it as library
Field lIlIlIIII.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70161_v wasn't found. Please add it as library
Field lIlIlIIII.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70165_t wasn't found. Please add it as library
Field lIlIlIIII.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70163_u wasn't found. Please add it as library
Field lIlIlIIII.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70161_v wasn't found. Please add it as library
Field llIIlIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_71071_by wasn't found. Please add it as library
Field llIIlIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIlllII.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_71071_by wasn't found. Please add it as library
Field llIlllII.llIlIlIIlIl wasn't found. Please add it as library
Field llIlllII.llIlIlIIlIl wasn't found. Please add it as library
Field llIlllII.llIlIlIIlIl wasn't found. Please add it as library
Field llIlllII.llIlIlIIlIl wasn't found. Please add it as library
Field lIIlllIII.llIlIlIIlIl wasn't found. Please add it as library
Field lIIlIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field lIllIlIII.lIllIIlIlIl wasn't found. Please add it as library
Field lIllIlIII.lIllIIlIlIl wasn't found. Please add it as library
Field lIlIIllIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/multiplayer/WorldClient.field_147482_g wasn't found. Please add it as library
Field lIlIIllIl.llIlIlIIlIl wasn't found. Please add it as library
Field lIlIIllIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_71071_by wasn't found. Please add it as library
Field lIlIIllIl.llIlIlIIlIl wasn't found. Please add it as library
Field lIlIIllIl.llIlIlIIlIl wasn't found. Please add it as library
Field lIllIIlII.lIllIIlIlIl wasn't found. Please add it as library
Field lIllIIlII.lIllIIlIlIl wasn't found. Please add it as library
Field lIlIIlIII.llIlIlIIlIl wasn't found. Please add it as library
Field lIlIIlIII.llIlIlIIlIl wasn't found. Please add it as library
Field lIlIIlIII.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_71071_by wasn't found. Please add it as library
Field lIlIIlIII.llIlIlIIlIl wasn't found. Please add it as library
Field lIlIIlIII.llIlIlIIlIl wasn't found. Please add it as library
Field lIlIIlIII.llIlIlIIlIl wasn't found. Please add it as library
Field lIlIIlIII.llIlIlIIlIl wasn't found. Please add it as library
Field lIlIIlIII.llIlIlIIlIl wasn't found. Please add it as library
Field lIIllllll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/multiplayer/WorldClient.field_73010_i wasn't found. Please add it as library
Field lIIllllll.llIlIlIIlIl wasn't found. Please add it as library
Field lIIllllll.llIlIlIIlIl wasn't found. Please add it as library
Field lIIllllll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/multiplayer/WorldClient.field_73010_i wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70165_t wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70163_u wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70161_v wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70165_t wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70163_u wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70161_v wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_71071_by wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_71071_by wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_71071_by wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_71070_bA wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_71070_bA wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_71070_bA wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_71071_by wasn't found. Please add it as library
Field llIIlIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_71071_by wasn't found. Please add it as library
Field lIIlIlIII.field_146289_q wasn't found. Please add it as library
Field lIIlIlIII.field_146289_q wasn't found. Please add it as library
Field lIIlIlIII.field_146289_q wasn't found. Please add it as library
Field lIIlIllll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/entity/player/EntityPlayer.field_70128_L wasn't found. Please add it as library
Field lIIlIllll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/multiplayer/WorldClient.field_73010_i wasn't found. Please add it as library
Field lIIlIllll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/entity/player/EntityPlayer.field_70128_L wasn't found. Please add it as library
Field lIIlIllll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/multiplayer/WorldClient.field_73010_i wasn't found. Please add it as library
Field lIIlIllll.llIlIlIIlIl wasn't found. Please add it as library
Field lIIlIllll.llIlIlIIlIl wasn't found. Please add it as library
Field lIIlIllll.llIlIlIIlIl wasn't found. Please add it as library
Field lIllIllII.llIlIlIIlIl wasn't found. Please add it as library
Field lIllIllII.llIlIlIIlIl wasn't found. Please add it as library
Field lIllIllII.llIlIlIIlIl wasn't found. Please add it as library
Field lIIIIIlII.llIlIlIIlIl wasn't found. Please add it as library
Field llIllIII.lIllIIlIIlI wasn't found. Please add it as library
Field net/minecraft/entity/player/EntityPlayer.field_71093_bK wasn't found. Please add it as library
Field lIIlllIlI.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70145_X wasn't found. Please add it as library
Field lIllIIlII.lIllIIlIlIl wasn't found. Please add it as library
Field llllllIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70128_L wasn't found. Please add it as library
Field llllllIl.llIlIlIIlIl wasn't found. Please add it as library
Field llllllIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/multiplayer/WorldClient.field_72996_f wasn't found. Please add it as library
Field llllllIl.llIlIlIIlIl wasn't found. Please add it as library
Field llllllIl.llIlIlIIlIl wasn't found. Please add it as library
Field llllllIl.llIlIlIIlIl wasn't found. Please add it as library
Field llllllIl.llIlIlIIlIl wasn't found. Please add it as library
Field llllllIl.llIlIlIIlIl wasn't found. Please add it as library
Field llllllIl.llIlIlIIlIl wasn't found. Please add it as library
Field lIlllllll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/multiplayer/WorldClient.field_72996_f wasn't found. Please add it as library
Field lIlllIlIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70173_aa wasn't found. Please add it as library
Field lIlllIlIl.llIlIlIIlIl wasn't found. Please add it as library
Field lIlllIlIl.llIlIlIIlIl wasn't found. Please add it as library
Field lIlIlllII.llIlIlIIlIl wasn't found. Please add it as library
Field lIlIlllII.llIlIlIIlIl wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field lIlIlllII.llIlIlIIlIl wasn't found. Please add it as library
Field lIlIlllII.llIlIlIIlIl wasn't found. Please add it as library
Field lIlIlllII.llIlIlIIlIl wasn't found. Please add it as library
Field lIlIlllII.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70165_t wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70163_u wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70161_v wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_71071_by wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_71071_by wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_71071_by wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_71071_by wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_71071_by wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_71071_by wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/entity/player/EntityPlayer.field_70165_t wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/entity/player/EntityPlayer.field_70163_u wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/entity/player/EntityPlayer.field_70161_v wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70165_t wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70163_u wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70161_v wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70165_t wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70163_u wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70161_v wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70165_t wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70163_u wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70161_v wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70165_t wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70163_u wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70161_v wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70165_t wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70163_u wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70161_v wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70165_t wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70163_u wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70161_v wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70165_t wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70163_u wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70161_v wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70165_t wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70163_u wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70161_v wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70165_t wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70163_u wasn't found. Please add it as library
Field lIllIIlll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70161_v wasn't found. Please add it as library
Field lIllIIIlI.llIIlllIlII wasn't found. Please add it as library
Field lIIIIlllI.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/multiplayer/WorldClient.field_72996_f wasn't found. Please add it as library
Field lIIIIlllI.llIlIlIIlIl wasn't found. Please add it as library
Field lIIIIlllI.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/multiplayer/WorldClient.field_72996_f wasn't found. Please add it as library
Field lIIIIlllI.llIlIlIIlIl wasn't found. Please add it as library
Field lIIIIlllI.llIlIlIIlIl wasn't found. Please add it as library
Field lIIIIlllI.llIlIlIIlIl wasn't found. Please add it as library
Field lIIllIIII.llIlIlIIlIl wasn't found. Please add it as library
Field lIIIlllll.llIIlllIlII wasn't found. Please add it as library
Field lIIIlllll.llIIlllIlII wasn't found. Please add it as library
Field lIIIlllll.llIIlllIlII wasn't found. Please add it as library
Field lIIIlllll.llIIlllIlII wasn't found. Please add it as library
Field lIIIlllll.llIIlllIlII wasn't found. Please add it as library
Field lIIIlllll.llIIlllIlII wasn't found. Please add it as library
Field llIIIlIll.llIlIlIIlIl wasn't found. Please add it as library
Field llIIIlIll.llIlIlIIlIl wasn't found. Please add it as library
Field lIIIlllll.llIIlllIlII wasn't found. Please add it as library
Field lIIIlllll.llIIlllIlII wasn't found. Please add it as library
Field lIIIlllll.llIIlllIlII wasn't found. Please add it as library
Field lIIIlllll.llIIlllIlII wasn't found. Please add it as library
Field lIIIlllll.llIIlllIlII wasn't found. Please add it as library
Field lIIIlllll.llIIlllIlII wasn't found. Please add it as library
Field llllIlII.llIlIlIIlIl wasn't found. Please add it as library
Field llllIlII.llIlIlIIlIl wasn't found. Please add it as library
Field llllIlII.llIlIlIIlIl wasn't found. Please add it as library
Field llllIlII.llIlIlIIlIl wasn't found. Please add it as library
Field llllIlII.llIlIlIIlIl wasn't found. Please add it as library
Field llllIlII.llIlIlIIlIl wasn't found. Please add it as library
Field llllIlII.llIlIlIIlIl wasn't found. Please add it as library
Field llIIIlIll.llIlIlIIlIl wasn't found. Please add it as library
Field llIIIlIll.llIlIlIIlIl wasn't found. Please add it as library
Field llIIIlIll.llIlIlIIlIl wasn't found. Please add it as library
Field llIIIlIll.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70165_t wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70163_u wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70161_v wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70177_z wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70177_z wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70125_A wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70125_A wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70122_E wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_71071_by wasn't found. Please add it as library
Field llIIlllI.llIIIllllII wasn't found. Please add it as library
Field lIIIlllll.llIIlllIlII wasn't found. Please add it as library
Field llIIlllI.llIIlllIlII wasn't found. Please add it as library
Field llIIlllI.llIIlllIlII wasn't found. Please add it as library
Field llIIlllI.llIIlllIlII wasn't found. Please add it as library
Field lIIIlllll.llIIlllIlII wasn't found. Please add it as library
Field lIIIIlIII.llIlIlIIlIl wasn't found. Please add it as library
Field lIllllIll.llIlIlIIlIl wasn't found. Please add it as library
Field lIllllIll.llIlIlIIlIl wasn't found. Please add it as library
Field lIllllIll.llIlIlIIlIl wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70159_w wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70179_y wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70181_x wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70165_t wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70159_w wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70163_u wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70161_v wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70179_y wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70177_z wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70125_A wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70165_t wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70159_w wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70163_u wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70161_v wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70179_y wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70177_z wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70125_A wasn't found. Please add it as library
Field llIIIIIIl.llIlIlIIlIl wasn't found. Please add it as library
Field net/minecraft/client/entity/EntityPlayerSP.field_70177_z wasn't found. Please add it as library
Field lIlIllllI.llIIlllIlII wasn't found. Please add it as library
... Finished after 419ms 
Writing classes...
... Finished after 162ms 
Writing resources...
... Finished after 288ms 
Finishing...
>>> Processing completed. If you found a bug / if the output is invalid please open an issue at https://github.com/superblaubeere27/obfuscator/issues

Minecraft crash:

[18:52:40] [main/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:func_179870_a:553]: ---- Minecraft Crash Report ----
// On the bright side, I bought you a teddy bear!

Time: 8/23/19 6:52 PM
Description: There was a severe problem during mod loading that has caused the game to fail

net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Backdoored (backdoored)
Caused by: java.lang.BootstrapMethodError: call site initialization exception
	at java.lang.invoke.CallSite.makeSite(CallSite.java:341)
	at java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:307)
	at java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:297)
	at lIIIIIlI.<clinit>(äKWZAg6jp6eU=öNivBböLScEJjU=öKFhUPöDDVNIDk2Lw8aNQ==öEFmvPöKxw3AQ==öiuYeGöGA5zjLxBnMoUPPp0+K848Q==öhthaTöqHPielj5QMKiOSY5/1NdSXD1tSUkudE5öHVMTrökXNcOuDHBxmSJVUr3vieLQ==öqDeikö8wWWKHUvpdY=öYsuvyö96zHT+T7aczb0l1yMUnJ7PtOSVlKbcqJwkoka/ux/bI=öODwFjöJjkoAysDHChwDgM5DSYrJjkNcFVwUEFqQmo=öJpaJbö8+JvnSzuUQIJa4Z9mzLUeQo/T74qfAlyw6I2BRC4ZgztEnayCciC2HYwX2MSSpo3PCQkuR054f3USM/KS7GZtw==öFFAuUöNSMsOBg1IwlLPRAGLDgYEAYJHWttdUVRcXk=öYOeqQö7SpMUhin11Akk9Gy0qh+3YIqV4g+ZaeLdNly++lyCwScdXP2Ak/LDLPumH3+z9UJönSIhBöü)
	at com.backdoored.Backdoored.initHacks(äVhIRP31O3Wt3kmCLlhr8xU3ane61Gt4zögRhVröHwMvCh8jAW4CHy4DIB0TöMfNnvöILkvWyBknSyPzwHejicY6UReB+aUgo1dözsTVIöfGND+DZd3oDXy9xxauQByA==ögVXlcöqu4NtBzWccz8NesJtQsKsA==öUsCUCöJI/6s0/tmuFYmG0vaiibrw==ögBLkQöNCsZGgsZJQgUC1Z6VEA=övJzqoöwPM2A5l/AaY=öxIcHFöJRdyöhSGXzöbEXnSCWzjj8=öqxrOqö19kqrnvDhN4=öcmCbIöPxZoEBEiFi8JGg==öPeFftöziPqoxLTp8CazIqt07KaEUqEaA7SRIOCözfzTjöLWfdCHxI9I/LLJrmZWAivNTo+y2yBb29öjaibxöCUGD2mfBEfx5Nxgr+1dGjbgVF4+HcVzböGtMUaö29tBIPOdG+FYkeBBDM2/a5IRMIp1PFWgörSigtöü)
	at com.backdoored.Backdoored.postInit(äVhIRP31O3Wt3kmCLlhr8xU3ane61Gt4zögRhVröHwMvCh8jAW4CHy4DIB0TöMfNnvöILkvWyBknSyPzwHejicY6UReB+aUgo1dözsTVIöfGND+DZd3oDXy9xxauQByA==ögVXlcöqu4NtBzWccz8NesJtQsKsA==öUsCUCöJI/6s0/tmuFYmG0vaiibrw==ögBLkQöNCsZGgsZJQgUC1Z6VEA=övJzqoöwPM2A5l/AaY=öxIcHFöJRdyöhSGXzöbEXnSCWzjj8=öqxrOqö19kqrnvDhN4=öcmCbIöPxZoEBEiFi8JGg==öPeFftöziPqoxLTp8CazIqt07KaEUqEaA7SRIOCözfzTjöLWfdCHxI9I/LLJrmZWAivNTo+y2yBb29öjaibxöCUGD2mfBEfx5Nxgr+1dGjbgVF4+HcVzböGtMUaö29tBIPOdG+FYkeBBDM2/a5IRMIp1PFWgörSigtöü)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:624)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
	at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
	at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
	at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
	at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
	at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
	at com.google.common.eventbus.EventBus.post(EventBus.java:217)
	at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:218)
	at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:196)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
	at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
	at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
	at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
	at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
	at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
	at com.google.common.eventbus.EventBus.post(EventBus.java:217)
	at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:135)
	at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:744)
	at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:336)
	at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:534)
	at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:377)
	at net.minecraft.client.main.Main.main(SourceFile:123)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
Caused by: java.lang.VerifyError: Bad type on operand stack
Exception Details:
  Location:
    llIIIlll.<clinit>()V @39: invokedynamic
  Reason:
    Type 'net/minecraft/network/play/client/CPacketVehicleMove' (current frame, stack[0]) is not assignable to 'java/util/ArrayList'
  Current Frame:
    bci: @39
    flags: { }
    locals: { }
    stack: { 'net/minecraft/network/play/client/CPacketVehicleMove' }
  Bytecode:
    0x0000000: b800 cab8 00cd b800 cfb8 00d2 ba00 db00
    0x0000010: 00b3 00dd bb00 0f59 b700 dfba 00e3 0000
    0x0000020: bb00 0d59 b700 e4ba 00e7 0000 bb00 e959
    0x0000030: b700 eaba 00ee 0000 bb00 e959 b700 eaba
    0x0000040: 00f1 0000 b200 5004 2eba 00f5 0000 b1  

	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at lIIIIIlI.llIIlllIIlI(äKWZAg6jp6eU=öNivBböLScEJjU=öKFhUPöDDVNIDk2Lw8aNQ==öEFmvPöKxw3AQ==öiuYeGöGA5zjLxBnMoUPPp0+K848Q==öhthaTöqHPielj5QMKiOSY5/1NdSXD1tSUkudE5öHVMTrökXNcOuDHBxmSJVUr3vieLQ==öqDeikö8wWWKHUvpdY=öYsuvyö96zHT+T7aczb0l1yMUnJ7PtOSVlKbcqJwkoka/ux/bI=öODwFjöJjkoAysDHChwDgM5DSYrJjkNcFVwUEFqQmo=öJpaJbö8+JvnSzuUQIJa4Z9mzLUeQo/T74qfAlyw6I2BRC4ZgztEnayCciC2HYwX2MSSpo3PCQkuR054f3USM/KS7GZtw==öFFAuUöNSMsOBg1IwlLPRAGLDgYEAYJHWttdUVRcXk=öYOeqQö7SpMUhin11Akk9Gy0qh+3YIqV4g+ZaeLdNly++lyCwScdXP2Ak/LDLPumH3+z9UJönSIhBöü)
	at java.lang.invoke.CallSite.makeSite(CallSite.java:283)
	... 46 more

The method causing the error seems to be llIIIlll's constructor, which is this:
constructor

The preobfuscated llIIIlll I believe is this:

public class Globals
{
    public static final Minecraft mc;
    public static ArrayList<BaseHack> hacks;
    public static ArrayList<AddCategory> categories;
    public static Map<String, Button> buttonMap;
    public static Map<String, BaseHack> hacksMap;
    public static boolean isAlpha;
    
    @Nullable
    public static NetworkManager getNetworkManager() {
        return FMLClientHandler.instance().getClientToServerNetworkManager();
    }
    
    public static BaseHack getHack(final String name) {
        for (final BaseHack hack : Globals.hacks) {
            if (hack.name.equalsIgnoreCase(name)) {
                return hack;
            }
        }
        throw new RuntimeException("Hack with name " + name + " not found");
    }
    
    public static BaseHack getHack(final Class<? extends BaseHack> hackClass) {
        for (final BaseHack hack : Globals.hacks) {
            if (hack.getClass() == hackClass) {
                return hack;
            }
        }
        throw new RuntimeException("Hack of class " + hackClass.getName() + " not found");
    }
    
    public static ArrayList<BaseHack> sortHacks(final boolean alphabetical) {
        if (alphabetical) {
            Globals.hacks.sort((Comparator<? super BaseHack>)new Globals.AlphabeticComparator((Globals.Globals$1)null));
        }
        else {
            Globals.hacks.sort((Comparator<? super BaseHack>)new Globals.StrLengthComparator((Globals.Globals$1)null));
        }
        Globals.isAlpha = alphabetical;
        return Globals.hacks;
    }
    
    static {
        mc = Minecraft.func_71410_x();
        Globals.hacks = (ArrayList<BaseHack>)new Globals.Globals$1();
        Globals.categories = (ArrayList<AddCategory>)new Globals.Globals$2();
        Globals.buttonMap = new HashMap<String, Button>();
        Globals.hacksMap = new HashMap<String, BaseHack>();
        Globals.isAlpha = true;
    }
}

I'm guessing that the error is therefore from the Minecraft.getMinecraft() call (mapped to func_71410_x)

The obfuscator works fine when I don't remapping.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.