From bd2eaa92fee28e5d9c630a342896b0a47b8b1108 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Thu, 2 Feb 2017 20:01:29 +0100 Subject: [PATCH] [FEATURE] Added Anti Bot Detector for Elkoy --- src/main/java/org/parabot/randoms/Core.java | 4 +- .../parabot/randoms/elkoy/AntiDetector.java | 83 +++++++++++++++++++ 2 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/parabot/randoms/elkoy/AntiDetector.java diff --git a/src/main/java/org/parabot/randoms/Core.java b/src/main/java/org/parabot/randoms/Core.java index 4616a66..460c028 100755 --- a/src/main/java/org/parabot/randoms/Core.java +++ b/src/main/java/org/parabot/randoms/Core.java @@ -3,8 +3,8 @@ package org.parabot.randoms; import org.parabot.core.Context; import org.parabot.environment.randoms.Random; import org.parabot.randoms.dreamscape.SerialBanAvoider; +import org.parabot.randoms.elkoy.AntiDetector; import org.parabot.randoms.elkoy.LogoutDisabler; -import org.parabot.randoms.elkoy.MouseOnScreen; import org.parabot.randoms.elkoy.QuestionSolver; import org.parabot.randoms.pkhonor.*; @@ -31,7 +31,7 @@ public class Core { // Elkoy //randoms.add(new QuestionSolver()); randoms.add(new LogoutDisabler()); - randoms.add(new MouseOnScreen()); + randoms.add(new AntiDetector()); org.parabot.core.Core.verbose("Possible randoms:"); for (Random random : randoms) { diff --git a/src/main/java/org/parabot/randoms/elkoy/AntiDetector.java b/src/main/java/org/parabot/randoms/elkoy/AntiDetector.java new file mode 100644 index 0000000..b1d76ab --- /dev/null +++ b/src/main/java/org/parabot/randoms/elkoy/AntiDetector.java @@ -0,0 +1,83 @@ +package org.parabot.randoms.elkoy; + +import org.parabot.core.Context; +import org.parabot.core.reflect.RefClass; +import org.parabot.core.reflect.RefField; +import org.parabot.environment.api.utils.Time; +import org.parabot.environment.randoms.Random; +import org.parabot.environment.randoms.RandomType; + +/** + * @author JKetelaar, Empathy, Ethan + */ +public class AntiDetector implements Random, Runnable { + + private boolean activated; + + private final String[] toBeNull = {"P", "Q", "N"}; + private final String className = "cb"; + + @Override + public boolean activate() { + return !activated; + } + + @Override + public void execute() { + activated = true; + + new Thread(this).start(); + } + + @Override + public String getName() { + return "Anti Bot Detector"; + } + + @Override + public String getServer() { + return "Elkoy"; + } + + @Override + public RandomType getRandomType() { + return RandomType.ON_SERVER_START; + } + + @Override + public void run() { + while (activated) { + try { + final RefClass refClass = new RefClass(Context.getInstance().getASMClassLoader().loadClass(className)); + + for (RefField refField : refClass.getFields()) { + if (refField != null) { + if (refClass.isStatic()) { + if (refField.getType().getName().equalsIgnoreCase("boolean")) { + refField.set(false); + } else if (refField.getType().getName().equalsIgnoreCase("int")) { + int i = (int) refField.asObject(); + if (i >= 0) { + refField.set(-1); + } + } else if (refField.getType().getName().equalsIgnoreCase("string")) { + String str = (String) refField.asObject(); + if (str.length() > 0) { + refField.set(null); + } + } + } + } + } + + for (String s : toBeNull) { + refClass.getField(s).set(null); + } + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + + Time.sleep(25); + } + } +}