diff --git a/src/main/java/org/parabot/randoms/Core.java b/src/main/java/org/parabot/randoms/Core.java index 30df961..264bdae 100755 --- a/src/main/java/org/parabot/randoms/Core.java +++ b/src/main/java/org/parabot/randoms/Core.java @@ -10,6 +10,7 @@ import org.parabot.randoms.elkoy.MouseOnScreen; import org.parabot.randoms.elkoy.QuestionSolver; import org.parabot.randoms.locopk.MacAddressFix; import org.parabot.randoms.pkhonor.*; +import org.parabot.randoms.runewild.MacAddressFix_Runewild; import org.parabot.randoms.soulplay.RandomUUID; import java.util.ArrayList; @@ -36,8 +37,9 @@ public class Core { randoms.add(new MouseOnScreen()); randoms.add(new AntiDetector()); - // LocoPK + // LocoPK - rebranded to RuneWild randoms.add(new MacAddressFix()); + randoms.add(new MacAddressFix_Runewild()); // Dreamscape randoms.add(new FileBan()); diff --git a/src/main/java/org/parabot/randoms/runewild/MacAddressFix_Runewild.java b/src/main/java/org/parabot/randoms/runewild/MacAddressFix_Runewild.java new file mode 100644 index 0000000..b1e6465 --- /dev/null +++ b/src/main/java/org/parabot/randoms/runewild/MacAddressFix_Runewild.java @@ -0,0 +1,104 @@ +package org.parabot.randoms.runewild; + +import java.util.UUID; +import org.parabot.api.output.Logger; +import org.parabot.core.Context; +import org.parabot.core.asm.ASMClassLoader; +import org.parabot.core.reflect.RefClass; +import org.parabot.core.reflect.RefField; +import org.parabot.environment.randoms.Random; +import org.parabot.environment.randoms.RandomType; + +/** + * @author EmmaStone + */ +public class MacAddressFix_Runewild implements Random { + + private boolean done; + + @Override + public boolean activate() { + return true; + } + + @Override + public void execute() { + try { + final ASMClassLoader classLoader = Context.getInstance().getASMClassLoader(); + + RefClass createUID = new RefClass(classLoader.loadClass("com.rw.client.rs.CreateUID")); + + + try { + Logger.info("MacAddressFix_RW", String.format( + "Before applying MAC override : %s | %s | %s", + createUID.getField("mac").getField().get(""), + createUID.getField("firstId").getField().get(""), + createUID.getField("secondId").getField().get(""))); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + + String s1 = UUID.randomUUID().toString(); + String s2 = UUID.randomUUID().toString(); + + RefField mac = createUID.getField("mac"); + mac.set("lolmkay"); + + RefField firstId = createUID.getField("firstId"); + firstId.set(s1); + + RefField secondId = createUID.getField("secondId"); + secondId.set(s2); + try { + Logger.info("MacAddressFix_RW", String.format( + "Applied MAC override : %s | %s | %s", + mac.getField().get(""), + firstId.getField().get(""), + secondId.getField().get(""))); + } catch (IllegalAccessException e) { + e.printStackTrace(); + Logger.error("Macfix RW", e.getMessage()); + } + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + + done = true; + } + + @Override + public String getName() { + return "Mac Address Fix"; + } + + @Override + public String getServer() { + return "RuneWild"; + } + + @Override + public RandomType getRandomType() { + return RandomType.ON_SERVER_START; + } + + private String randomMacAddress() { + java.util.Random rand = new java.util.Random(); + byte[] macAddr = new byte[6]; + rand.nextBytes(macAddr); + + macAddr[0] = (byte) (macAddr[0] & (byte) 254); //zeroing last 2 bytes to make it unicast and locally adminstrated + + StringBuilder sb = new StringBuilder(18); + for (byte b : macAddr) { + + if (sb.length() > 0) { + sb.append(""); + } + + sb.append(String.format("%02x", b)); + } + + return sb.toString().toUpperCase(); + } +} diff --git a/src/main/java/org/parabot/randoms/soulplay/RandomUUID.java b/src/main/java/org/parabot/randoms/soulplay/RandomUUID.java index 2904c9a..73c6168 100644 --- a/src/main/java/org/parabot/randoms/soulplay/RandomUUID.java +++ b/src/main/java/org/parabot/randoms/soulplay/RandomUUID.java @@ -1,5 +1,6 @@ package org.parabot.randoms.soulplay; +import org.parabot.api.output.Logger; import org.parabot.core.reflect.RefClass; import org.parabot.environment.randoms.Random; import org.parabot.environment.randoms.RandomType; @@ -15,6 +16,8 @@ public class RandomUUID implements Random { private long number; public RandomUUID() { + Logger.info("RandomUUID", Loader.getClient()+" is client class"); + assert Loader.getClient() != null; this.clientClass = new RefClass(Loader.getClient()); this.number = (long) Math.floor(Math.random() * 9000000000L) + 1000000000L; }