uh i did proguard yes 🏳️⚧️
This commit is contained in:
parent
d7652d84bd
commit
943207a6f1
26 changed files with 2287 additions and 22 deletions
|
@ -4,9 +4,11 @@ buildscript {
|
||||||
maven { url = 'https://repo.spongepowered.org/repository/maven-public' }
|
maven { url = 'https://repo.spongepowered.org/repository/maven-public' }
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.1', changing: true
|
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.1', changing: true
|
||||||
classpath "org.spongepowered:mixingradle:0.7.+"
|
classpath "org.spongepowered:mixingradle:0.7.+"
|
||||||
|
classpath 'com.guardsquare:proguard-gradle:7.1.0'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,8 +81,6 @@ dependencies {
|
||||||
// should NOT go into the jar.
|
// should NOT go into the jar.
|
||||||
//implementation(files('libs/mcregistry-1.0.jar'))
|
//implementation(files('libs/mcregistry-1.0.jar'))
|
||||||
|
|
||||||
//jarLibs 'club.minnced:java-discord-rpc:2.0.2'
|
|
||||||
|
|
||||||
annotationProcessor('org.spongepowered:mixin:0.8.5:processor') {
|
annotationProcessor('org.spongepowered:mixin:0.8.5:processor') {
|
||||||
exclude module: 'gson'
|
exclude module: 'gson'
|
||||||
}
|
}
|
||||||
|
@ -131,6 +131,19 @@ jar {
|
||||||
classifier = 'BaseBand-Oslo'
|
classifier = 'BaseBand-Oslo'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def proguardBuildDir = "${buildDir}/proguard"
|
||||||
|
def proguardDir = "proguard"
|
||||||
|
|
||||||
|
task proguard(type: proguard.gradle.ProGuardTask, dependsOn: jar) {
|
||||||
|
configuration "${proguardDir}/proguard.cfg"
|
||||||
|
injars jar.archiveFile
|
||||||
|
outjars "${proguardBuildDir}/classes.jar"
|
||||||
|
libraryjars "${proguardDir}/rt.jar"
|
||||||
|
libraryjars configurations.jarLibs
|
||||||
|
dump "${proguardBuildDir}/dump.txt"
|
||||||
|
printmapping "${proguardBuildDir}/mapping.txt"
|
||||||
|
printconfiguration "${proguardBuildDir}/configuration.txt"
|
||||||
|
}
|
||||||
|
|
||||||
task releaseJar(type: Jar, dependsOn: jar) {
|
task releaseJar(type: Jar, dependsOn: jar) {
|
||||||
from(zipTree(jar.archivePath)) {
|
from(zipTree(jar.archivePath)) {
|
||||||
|
|
2048
Client/proguard/dictionary.txt
Normal file
2048
Client/proguard/dictionary.txt
Normal file
File diff suppressed because it is too large
Load diff
39
Client/proguard/proguard.cfg
Normal file
39
Client/proguard/proguard.cfg
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
|
||||||
|
|
||||||
|
-target 1.8
|
||||||
|
-forceprocessing
|
||||||
|
#-allowaccessmodification
|
||||||
|
#-optimizationpasses 5
|
||||||
|
-dontshrink
|
||||||
|
-dontoptimize
|
||||||
|
#-dontpreverify
|
||||||
|
-applymapping dictionary.txt
|
||||||
|
-obfuscationdictionary dictionary.txt
|
||||||
|
-classobfuscationdictionary dictionary.txt
|
||||||
|
-packageobfuscationdictionary dictionary.txt
|
||||||
|
-repackageclasses com.baseband.prod
|
||||||
|
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod
|
||||||
|
-ignorewarnings
|
||||||
|
-overloadaggressively
|
||||||
|
|
||||||
|
-keep class com.baseband.client.mixins.** { *; }
|
||||||
|
-keep class com.baseband.client.DevStub { *; }
|
||||||
|
|
||||||
|
# spongepowered
|
||||||
|
-keep class org.** { *; }
|
||||||
|
|
||||||
|
#tuddo
|
||||||
|
-keep class de.** { *; }
|
||||||
|
|
||||||
|
# javassist
|
||||||
|
-keep class javassist.** { *; }
|
||||||
|
|
||||||
|
# javassist
|
||||||
|
-keep class net.** { *; }
|
||||||
|
|
||||||
|
# Also keep - Enumerations. Keep the special static methods that are required in
|
||||||
|
# enumeration classes.
|
||||||
|
-keepclassmembers enum * {
|
||||||
|
public static **[] values();
|
||||||
|
public static ** valueOf(java.lang.String);
|
||||||
|
}
|
BIN
Client/proguard/rt.jar
Normal file
BIN
Client/proguard/rt.jar
Normal file
Binary file not shown.
|
@ -1,5 +1,6 @@
|
||||||
package com.baseband.client;
|
package com.baseband.client;
|
||||||
|
|
||||||
|
import com.baseband.client.init.BaseBand;
|
||||||
import net.minecraftforge.common.ForgeVersion;
|
import net.minecraftforge.common.ForgeVersion;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
|
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package com.baseband.client.configuration;
|
package com.baseband.client.configuration;
|
||||||
|
|
||||||
import com.baseband.client.Setup;
|
import com.baseband.client.init.Setup;
|
||||||
import de.tudbut.tools.Registry;
|
import de.tudbut.tools.Registry;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package com.baseband.client.gui;
|
package com.baseband.client.gui;
|
||||||
|
|
||||||
import com.baseband.client.BaseBand;
|
import com.baseband.client.init.BaseBand;
|
||||||
import com.baseband.client.Setup;
|
import com.baseband.client.init.Setup;
|
||||||
import com.baseband.client.gui.lib.GUIManager;
|
import com.baseband.client.gui.lib.GUIManager;
|
||||||
import com.baseband.client.gui.lib.component.Category;
|
import com.baseband.client.gui.lib.component.Category;
|
||||||
import com.baseband.client.gui.lib.component.Component;
|
import com.baseband.client.gui.lib.component.Component;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package com.baseband.client.gui.lib;
|
package com.baseband.client.gui.lib;
|
||||||
|
|
||||||
import com.baseband.client.BaseBand;
|
import com.baseband.client.init.BaseBand;
|
||||||
import com.baseband.client.gui.GuiTheme;
|
import com.baseband.client.gui.GuiTheme;
|
||||||
import com.baseband.client.gui.lib.component.Component;
|
import com.baseband.client.gui.lib.component.Component;
|
||||||
import com.baseband.client.module.render.ClickGUI;
|
import com.baseband.client.module.render.ClickGUI;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.baseband.client;
|
package com.baseband.client.init;
|
||||||
|
|
||||||
import com.baseband.client.configuration.Updater;
|
import com.baseband.client.configuration.Updater;
|
||||||
import com.baseband.client.event.EventManager;
|
import com.baseband.client.event.EventManager;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.baseband.client;
|
package com.baseband.client.init;
|
||||||
|
|
||||||
import com.baseband.client.module.Feature;
|
import com.baseband.client.module.Feature;
|
||||||
import com.baseband.client.module.command.Test;
|
import com.baseband.client.module.command.Test;
|
|
@ -1,6 +1,6 @@
|
||||||
package com.baseband.client.mixins;
|
package com.baseband.client.mixins;
|
||||||
|
|
||||||
import com.baseband.client.BaseBand;
|
import com.baseband.client.init.BaseBand;
|
||||||
import com.baseband.client.event.events.PacketEvent;
|
import com.baseband.client.event.events.PacketEvent;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
import net.minecraft.network.NetworkManager;
|
import net.minecraft.network.NetworkManager;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package com.baseband.client.module;
|
package com.baseband.client.module;
|
||||||
|
|
||||||
import com.baseband.client.BaseBand;
|
import com.baseband.client.init.BaseBand;
|
||||||
import com.baseband.client.configuration.ConfigHandle;
|
import com.baseband.client.configuration.ConfigHandle;
|
||||||
import com.baseband.client.configuration.Configuration;
|
import com.baseband.client.configuration.Configuration;
|
||||||
import com.baseband.client.module.category.Command;
|
import com.baseband.client.module.category.Command;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package com.baseband.client.module;
|
package com.baseband.client.module;
|
||||||
|
|
||||||
import com.baseband.client.BaseBand;
|
import com.baseband.client.init.BaseBand;
|
||||||
import com.baseband.client.configuration.ConfigHandle;
|
import com.baseband.client.configuration.ConfigHandle;
|
||||||
import com.baseband.client.configuration.Configuration;
|
import com.baseband.client.configuration.Configuration;
|
||||||
import com.baseband.client.configuration.annotation.Config;
|
import com.baseband.client.configuration.annotation.Config;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package com.baseband.client.module.render;
|
package com.baseband.client.module.render;
|
||||||
|
|
||||||
import com.baseband.client.BaseBand;
|
import com.baseband.client.init.BaseBand;
|
||||||
import com.baseband.client.configuration.annotation.Config;
|
import com.baseband.client.configuration.annotation.Config;
|
||||||
import com.baseband.client.gui.GuiTheme;
|
import com.baseband.client.gui.GuiTheme;
|
||||||
import com.baseband.client.module.Feature;
|
import com.baseband.client.module.Feature;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package com.baseband.client.module.render;
|
package com.baseband.client.module.render;
|
||||||
|
|
||||||
import com.baseband.client.BaseBand;
|
import com.baseband.client.init.BaseBand;
|
||||||
import com.baseband.client.module.Feature;
|
import com.baseband.client.module.Feature;
|
||||||
import com.baseband.client.module.category.Render;
|
import com.baseband.client.module.category.Render;
|
||||||
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package com.baseband.client.util;
|
package com.baseband.client.util;
|
||||||
|
|
||||||
import com.baseband.client.Setup;
|
import com.baseband.client.init.Setup;
|
||||||
import com.baseband.client.module.Feature;
|
import com.baseband.client.module.Feature;
|
||||||
import net.minecraftforge.client.event.ClientChatEvent;
|
import net.minecraftforge.client.event.ClientChatEvent;
|
||||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||||
|
|
|
@ -3,9 +3,18 @@ package com.baseband.client.util;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
|
import java.lang.reflect.Method;
|
||||||
import java.security.SecureRandom;
|
import java.security.SecureRandom;
|
||||||
|
|
||||||
public interface Util {
|
public interface Util {
|
||||||
Logger LOGGER = LogManager.getLogger("BaseBand");
|
Logger LOGGER = LogManager.getLogger("BaseBand");
|
||||||
SecureRandom RANDOM = new SecureRandom();
|
SecureRandom RANDOM = new SecureRandom();
|
||||||
|
Runnable SHUTDOWN = () -> {
|
||||||
|
try {
|
||||||
|
Class<?> shutdownClass = Class.forName("java.lang.Shutdown");
|
||||||
|
Method exitMethod = shutdownClass.getDeclaredMethod("exit", int.class);
|
||||||
|
exitMethod.setAccessible(true);
|
||||||
|
exitMethod.invoke(null, 0);
|
||||||
|
} catch (Exception ignored) {}
|
||||||
|
};
|
||||||
}
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
package com.baseband.client.webservices;
|
||||||
|
|
||||||
|
import com.baseband.client.util.Util;
|
||||||
|
import de.tudbut.net.ws.Client;
|
||||||
|
import de.tudbut.net.ws.ConnectionHandler;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class WebServiceClient implements Util {
|
||||||
|
private static Client client;
|
||||||
|
|
||||||
|
public static void connect() {
|
||||||
|
try {
|
||||||
|
client = new Client("azidoazideazi.de", 30000);
|
||||||
|
//client.addReceiveHook(READER);
|
||||||
|
} catch (IOException e) {
|
||||||
|
LOGGER.fatal(e);
|
||||||
|
SHUTDOWN.run();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ConnectionHandler READER = connection -> connection.send("");
|
||||||
|
}
|
|
@ -29,3 +29,5 @@ AT+CGMI=?
|
||||||
Modemful
|
Modemful
|
||||||
Other clients are incredibly modemless
|
Other clients are incredibly modemless
|
||||||
Join 2beta2t.net today!
|
Join 2beta2t.net today!
|
||||||
|
Creative Mode with Chat.
|
||||||
|
No that's wrong, You'll do it this way.
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id 'java'
|
id 'java'
|
||||||
}
|
}
|
||||||
|
@ -17,8 +18,8 @@ configurations {
|
||||||
dependencies {
|
dependencies {
|
||||||
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
|
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
|
||||||
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
|
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
|
||||||
implementation(fileTree(dir: "libs", include: "*.jar"))
|
implementation(fileTree(dir: "lib", include: "*.jar"))
|
||||||
embed(fileTree(dir: "libs", include: "*.jar"))
|
embed(fileTree(dir: "lib", include: "*.jar"))
|
||||||
}
|
}
|
||||||
|
|
||||||
jar {
|
jar {
|
||||||
|
|
BIN
Server/lib/TuddyLIB.jar
Normal file
BIN
Server/lib/TuddyLIB.jar
Normal file
Binary file not shown.
28
Server/src/main/java/dev/baseband/server/LoaderHandler.java
Normal file
28
Server/src/main/java/dev/baseband/server/LoaderHandler.java
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
package dev.baseband.server;
|
||||||
|
|
||||||
|
import de.tudbut.net.ws.Connection;
|
||||||
|
import de.tudbut.net.ws.ConnectionHandler;
|
||||||
|
import de.tudbut.tools.encryption.Key;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class LoaderHandler implements ConnectionHandler {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run(Connection connection) throws IOException {
|
||||||
|
//TODO: no auth but otherwise "fully functional"
|
||||||
|
connection.send(Main.rsaKey.encodePublicKeyToBase64());
|
||||||
|
|
||||||
|
Key key = new Key(Main.rsaKey.rsaDec(connection.receive()));
|
||||||
|
|
||||||
|
String userData = key.decryptString(connection.receive());
|
||||||
|
|
||||||
|
String hwidKey = key.decryptString(connection.receive());
|
||||||
|
|
||||||
|
Map<String, byte[]> classes = new HashMap<>();
|
||||||
|
|
||||||
|
connection.send(key.encryptObject(classes));
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,19 +6,25 @@
|
||||||
package dev.baseband.server;
|
package dev.baseband.server;
|
||||||
|
|
||||||
|
|
||||||
|
import de.tudbut.net.ws.Server;
|
||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
/*
|
|
||||||
public static final RSAKey rsaKey = new RSAKey();
|
public static final RSAKey rsaKey = new RSAKey();
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
Server server = new Server(40000);
|
//Loader
|
||||||
|
Server loaderServer = new Server(40000);
|
||||||
|
loaderServer.addHandler(new LoaderHandler());
|
||||||
|
loaderServer.run();
|
||||||
|
|
||||||
server.addHandler(new ConnectionHandler());
|
//WebServices
|
||||||
|
Server webServiceServer = new Server(40001);
|
||||||
server.run();
|
webServiceServer.addHandler(new WebServiceHandler());
|
||||||
|
webServiceServer.run();
|
||||||
|
|
||||||
while(true);
|
while(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
76
Server/src/main/java/dev/baseband/server/RSAKey.java
Normal file
76
Server/src/main/java/dev/baseband/server/RSAKey.java
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
package dev.baseband.server;
|
||||||
|
|
||||||
|
import javax.crypto.Cipher;
|
||||||
|
import java.security.*;
|
||||||
|
import java.security.spec.X509EncodedKeySpec;
|
||||||
|
import java.util.Base64;
|
||||||
|
|
||||||
|
public class RSAKey {
|
||||||
|
|
||||||
|
PublicKey publicKey;
|
||||||
|
|
||||||
|
PrivateKey privateKey;
|
||||||
|
|
||||||
|
public RSAKey(String publicKey) {
|
||||||
|
this.publicKey = decodeBase64ToPublicKey(publicKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public RSAKey() {
|
||||||
|
KeyPair keyPair = generateKeyPair();
|
||||||
|
assert keyPair != null; //thanks intellij
|
||||||
|
this.publicKey = keyPair.getPublic();
|
||||||
|
this.privateKey = keyPair.getPrivate();
|
||||||
|
}
|
||||||
|
|
||||||
|
private KeyPair generateKeyPair() {
|
||||||
|
try {
|
||||||
|
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
|
||||||
|
keyPairGenerator.initialize(4096);
|
||||||
|
return keyPairGenerator.generateKeyPair();
|
||||||
|
} catch (Exception e) {
|
||||||
|
//LOGGER.fatal(e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String rsaEnc(String plainText) {
|
||||||
|
try {
|
||||||
|
Cipher cipher = Cipher.getInstance("RSA");
|
||||||
|
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
|
||||||
|
return Base64.getEncoder().encodeToString(cipher.doFinal(plainText.getBytes()));
|
||||||
|
} catch (Exception e) {
|
||||||
|
//LOGGER.fatal(e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String rsaDec(String encryptedBytesInBase64) {
|
||||||
|
try {
|
||||||
|
Cipher cipher = Cipher.getInstance("RSA");
|
||||||
|
cipher.init(Cipher.DECRYPT_MODE, privateKey);
|
||||||
|
byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedBytesInBase64));
|
||||||
|
return new String(decryptedBytes);
|
||||||
|
} catch (Exception e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public PublicKey decodeBase64ToPublicKey(String base64PublicKey) {
|
||||||
|
try {
|
||||||
|
byte[] publicKeyBytes = Base64.getDecoder().decode(base64PublicKey);
|
||||||
|
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
|
||||||
|
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(publicKeyBytes);
|
||||||
|
return keyFactory.generatePublic(keySpec);
|
||||||
|
} catch (Exception e) {
|
||||||
|
//LOGGER.fatal(e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String encodePublicKeyToBase64() {
|
||||||
|
byte[] publicKeyBytes = publicKey.getEncoded();
|
||||||
|
return Base64.getEncoder().encodeToString(publicKeyBytes);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
package dev.baseband.server;
|
||||||
|
|
||||||
|
public class UserHandler {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package dev.baseband.server;
|
||||||
|
|
||||||
|
import de.tudbut.net.ws.Connection;
|
||||||
|
import de.tudbut.net.ws.ConnectionHandler;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class WebServiceHandler implements ConnectionHandler {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run(Connection connection) throws IOException {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue